All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/hooks/unmount-namespace.c:37,1
    - Dst: syscall
      Src: /src/lxc/hooks/unmount-namespace.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - nstype
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: setns
    functionSourceFile: /src/lxc/hooks/unmount-namespace.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int setns(int fd, int nstype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:54,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:55,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mnt
    argTypes:
    - struct mount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: mount_free
    functionSourceFile: /src/lxc/hooks/unmount-namespace.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mount_free(struct mount *mnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/hooks/unmount-namespace.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a_
    - b_
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: mount_cmp_dst
    functionSourceFile: /src/lxc/hooks/unmount-namespace.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int mount_cmp_dst(const void *a_, const void *b_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/hooks/unmount-namespace.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mnt
    argTypes:
    - struct mount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: mount_should_error
    functionSourceFile: /src/lxc/hooks/unmount-namespace.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int mount_should_error(const struct mount *mnt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/hooks/unmount-namespace.c:84,1
    - Dst: openat
      Src: /src/lxc/hooks/unmount-namespace.c:94,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:96,1
    - Dst: fdopen
      Src: /src/lxc/hooks/unmount-namespace.c:100,1
    - Dst: close
      Src: /src/lxc/hooks/unmount-namespace.c:103,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:105,1
    - Dst: getmntent
      Src: /src/lxc/hooks/unmount-namespace.c:108,1
    - Dst: realloc::realloc
      Src: /src/lxc/hooks/unmount-namespace.c:112,1
    - Dst: mounts::mounts
      Src: /src/lxc/hooks/unmount-namespace.c:117,1
    - Dst: strdup
      Src: /src/lxc/hooks/unmount-namespace.c:118,1
    - Dst: strdup
      Src: /src/lxc/hooks/unmount-namespace.c:119,1
    - Dst: strdup
      Src: /src/lxc/hooks/unmount-namespace.c:120,1
    - Dst: src::src
      Src: /src/lxc/hooks/unmount-namespace.c:121,1
    - Dst: dst::dst
      Src: /src/lxc/hooks/unmount-namespace.c:121,1
    - Dst: fs::fs
      Src: /src/lxc/hooks/unmount-namespace.c:121,1
    - Dst: endmntent
      Src: /src/lxc/hooks/unmount-namespace.c:124,1
    - Dst: endmntent
      Src: /src/lxc/hooks/unmount-namespace.c:132,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:134,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:135,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:136,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:138,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - procfd
    - mp
    - countp
    argTypes:
    - int
    - struct mount**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 141
    functionName: read_mounts
    functionSourceFile: /src/lxc/hooks/unmount-namespace.c
    functionUses: 0
    functionsReached:
    - fs::fs
    - close
    - free
    - mounts::mounts
    - getmntent
    - openat
    - endmntent
    - src::src
    - realloc::realloc
    - dst::dst
    - strdup
    - fdopen
    - malloc
    linkageType: ''
    returnType: int
    signature: int read_mounts(int procfd, struct mount **mp, size_t *countp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/hooks/unmount-namespace.c:149,1
    - Dst: fprintf
      Src: /src/lxc/hooks/unmount-namespace.c:150,1
    - Dst: strcmp
      Src: /src/lxc/hooks/unmount-namespace.c:154,1
    - Dst: strncmp
      Src: /src/lxc/hooks/unmount-namespace.c:158,1
    - Dst: fprintf
      Src: /src/lxc/hooks/unmount-namespace.c:165,1
    - Dst: open
      Src: /src/lxc/hooks/unmount-namespace.c:172,1
    - Dst: fprintf
      Src: /src/lxc/hooks/unmount-namespace.c:174,1
    - Dst: strerror
      Src: /src/lxc/hooks/unmount-namespace.c:174,1
    - Dst: open
      Src: /src/lxc/hooks/unmount-namespace.c:179,1
    - Dst: fprintf
      Src: /src/lxc/hooks/unmount-namespace.c:181,1
    - Dst: strerror
      Src: /src/lxc/hooks/unmount-namespace.c:182,1
    - Dst: close
      Src: /src/lxc/hooks/unmount-namespace.c:183,1
    - Dst: setns
      Src: /src/lxc/hooks/unmount-namespace.c:187,1
    - Dst: fprintf
      Src: /src/lxc/hooks/unmount-namespace.c:188,1
    - Dst: strerror
      Src: /src/lxc/hooks/unmount-namespace.c:189,1
    - Dst: close
      Src: /src/lxc/hooks/unmount-namespace.c:190,1
    - Dst: close
      Src: /src/lxc/hooks/unmount-namespace.c:191,1
    - Dst: close
      Src: /src/lxc/hooks/unmount-namespace.c:194,1
    - Dst: read_mounts
      Src: /src/lxc/hooks/unmount-namespace.c:197,1
    - Dst: fprintf
      Src: /src/lxc/hooks/unmount-namespace.c:198,1
    - Dst: strerror
      Src: /src/lxc/hooks/unmount-namespace.c:199,1
    - Dst: close
      Src: /src/lxc/hooks/unmount-namespace.c:200,1
    - Dst: close
      Src: /src/lxc/hooks/unmount-namespace.c:203,1
    - Dst: qsort
      Src: /src/lxc/hooks/unmount-namespace.c:206,1
    - Dst: umount2
      Src: /src/lxc/hooks/unmount-namespace.c:210,1
    - Dst: mount_should_error
      Src: /src/lxc/hooks/unmount-namespace.c:212,1
    - Dst: fprintf
      Src: /src/lxc/hooks/unmount-namespace.c:213,1
    - Dst: strerror
      Src: /src/lxc/hooks/unmount-namespace.c:214,1
    - Dst: mount_free
      Src: /src/lxc/hooks/unmount-namespace.c:217,1
    - Dst: free
      Src: /src/lxc/hooks/unmount-namespace.c:219,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 222
    functionName: main
    functionSourceFile: /src/lxc/hooks/unmount-namespace.c
    functionUses: 0
    functionsReached:
    - strcmp
    - qsort
    - close
    - strncmp
    - fprintf
    - free
    - umount2
    - strerror
    - setns
    - mount_should_error
    - mount_free
    - read_mounts
    - open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:27,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:28,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:29,1
    - Dst: close
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:30,1
    - Dst: lxc_conf_init
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:32,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:33,1
    - Dst: lxc_config_read
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:34,1
    - Dst: lxc_conf_free
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:35,1
    - Dst: unlink
      Src: /src/lxc/src/tests/fuzz-lxc-config-read.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/lxc/src/tests/fuzz-lxc-config-read.c
    functionUses: 0
    functionsReached:
    - lxc_conf_free
    - close
    - lxc_make_tmpfile
    - lxc_test_assert_abort
    - lxc_conf_init
    - lxc_config_read
    - unlink
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/console_log.c:35,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:37,1
    - Dst: exit
      Src: /src/lxc/src/tests/console_log.c:38,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/console_log.c:41,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:42,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/console_log.c:47,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:48,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/console_log.c:53,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:54,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/console_log.c:58,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:59,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/console_log.c:63,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:64,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/console_log.c:68,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/console_log.c:70,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:71,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/console_log.c:75,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:76,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/console_log.c:80,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:81,1
    - Dst: sleep
      Src: /src/lxc/src/tests/console_log.c:86,1
    - Dst: struct lxc_container*::console_log
      Src: /src/lxc/src/tests/console_log.c:93,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:95,1
    - Dst: strerror
      Src: /src/lxc/src/tests/console_log.c:95,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/console_log.c:98,1
    - Dst: free
      Src: /src/lxc/src/tests/console_log.c:101,1
    - Dst: sleep
      Src: /src/lxc/src/tests/console_log.c:105,1
    - Dst: struct lxc_container*::console_log
      Src: /src/lxc/src/tests/console_log.c:111,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:114,1
    - Dst: strerror
      Src: /src/lxc/src/tests/console_log.c:114,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/console_log.c:119,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:120,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/console_log.c:124,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:125,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/console_log.c:129,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/console_log.c:131,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:132,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/console_log.c:136,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:137,1
    - Dst: sleep
      Src: /src/lxc/src/tests/console_log.c:142,1
    - Dst: stat
      Src: /src/lxc/src/tests/console_log.c:144,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:146,1
    - Dst: strerror
      Src: /src/lxc/src/tests/console_log.c:146,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/console_log.c:151,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:152,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/console_log.c:156,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:157,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/console_log.c:161,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:162,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/console_log.c:166,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:167,1
    - Dst: sleep
      Src: /src/lxc/src/tests/console_log.c:172,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/console_log.c:177,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/console_log.c:177,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:178,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/console_log.c:181,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:182,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/console_log.c:185,1
    - Dst: unlink
      Src: /src/lxc/src/tests/console_log.c:187,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:189,1
    - Dst: strerror
      Src: /src/lxc/src/tests/console_log.c:190,1
    - Dst: unlink
      Src: /src/lxc/src/tests/console_log.c:192,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/console_log.c:194,1
    - Dst: strerror
      Src: /src/lxc/src/tests/console_log.c:195,1
    - Dst: exit
      Src: /src/lxc/src/tests/console_log.c:197,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 142
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 198
    functionName: main
    functionSourceFile: /src/lxc/src/tests/console_log.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - exit
    - lxc_container_new
    - free
    - struct lxc_container*::console_log
    - struct lxc_container*::destroy
    - struct lxc_container*::want_daemonize
    - lxc_debug
    - struct lxc_container*::is_defined
    - strerror
    - unlink
    - lxc_error
    - struct lxc_container*::wait
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - stat
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::createl
    - sleep
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: lxc_debug_stream
    functionSourceFile: /src/lxc/src/tests/lxctest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_debug_stream(stream, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: lxc_error
    functionSourceFile: /src/lxc/src/tests/lxctest.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_error(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: lxc_debug
    functionSourceFile: /src/lxc/src/tests/lxctest.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_debug(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expression
    - ','
    - stringify_expression
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: lxc_test_assert_stringify
    functionSourceFile: /src/lxc/src/tests/lxctest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_test_assert_stringify(expression, stringify_expression)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expression
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: lxc_test_assert_abort
    functionSourceFile: /src/lxc/src/tests/lxctest.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_test_assert_abort(expression)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: test_error_ret
    functionSourceFile: /src/lxc/src/tests/lxctest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_error_ret(__ret__, format, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/shortlived.c:33,1
    - Dst: perror
      Src: /src/lxc/src/tests/shortlived.c:36,1
    - Dst: execlp
      Src: /src/lxc/src/tests/shortlived.c:41,1
    - Dst: exit
      Src: /src/lxc/src/tests/shortlived.c:42,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/shortlived.c:46,1
    - Dst: perror
      Src: /src/lxc/src/tests/shortlived.c:50,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/shortlived.c:57,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:58,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/shortlived.c:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 63
    functionName: destroy_container
    functionSourceFile: /src/lxc/src/tests/shortlived.c
    functionUses: 0
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int destroy_container(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/shortlived.c:68,1
    - Dst: perror
      Src: /src/lxc/src/tests/shortlived.c:71,1
    - Dst: execlp
      Src: /src/lxc/src/tests/shortlived.c:76,1
    - Dst: exit
      Src: /src/lxc/src/tests/shortlived.c:77,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/shortlived.c:81,1
    - Dst: perror
      Src: /src/lxc/src/tests/shortlived.c:86,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/shortlived.c:93,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:94,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/shortlived.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 99
    functionName: create_container
    functionSourceFile: /src/lxc/src/tests/shortlived.c
    functionUses: 0
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int create_container(void)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: lxc_error
      Src: /src/lxc/src/tests/shortlived.c:115,1
    - Dst: exit
      Src: /src/lxc/src/tests/shortlived.c:116,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/shortlived.c:118,1
    - Dst: close
      Src: /src/lxc/src/tests/shortlived.c:119,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/shortlived.c:129,1
    - Dst: exit
      Src: /src/lxc/src/tests/shortlived.c:130,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/shortlived.c:133,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:135,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/shortlived.c:139,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:140,1
    - Dst: create_container
      Src: /src/lxc/src/tests/shortlived.c:144,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:145,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/shortlived.c:149,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:151,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/tests/shortlived.c:155,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/shortlived.c:156,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:157,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/shortlived.c:161,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:163,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/shortlived.c:167,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:168,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/shortlived.c:172,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:173,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/shortlived.c:177,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/shortlived.c:181,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:182,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/shortlived.c:186,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:187,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/shortlived.c:194,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:195,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/shortlived.c:199,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:200,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/shortlived.c:205,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:206,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/shortlived.c:210,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:211,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/shortlived.c:217,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:218,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/shortlived.c:222,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:223,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/shortlived.c:233,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:234,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/shortlived.c:238,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:239,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/shortlived.c:244,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shortlived.c:246,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/shortlived.c:251,1
    - Dst: destroy_container
      Src: /src/lxc/src/tests/shortlived.c:252,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/shortlived.c:254,1
    - Dst: open
      Src: /src/lxc/src/tests/shortlived.c:257,1
    - Dst: read
      Src: /src/lxc/src/tests/shortlived.c:262,1
    - Dst: write
      Src: /src/lxc/src/tests/shortlived.c:263,1
    - Dst: close
      Src: /src/lxc/src/tests/shortlived.c:268,1
    - Dst: unlink
      Src: /src/lxc/src/tests/shortlived.c:272,1
    - Dst: exit
      Src: /src/lxc/src/tests/shortlived.c:273,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 144
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 274
    functionName: main
    functionSourceFile: /src/lxc/src/tests/shortlived.c
    functionUses: 0
    functionsReached:
    - close
    - fprintf
    - exit
    - lxc_container_new
    - lxc_log_init
    - create_container
    - open
    - struct lxc_container*::want_daemonize
    - destroy_container
    - lxc_debug
    - struct lxc_container*::is_defined
    - unlink
    - lxc_error
    - struct lxc_container*::wait
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - read
    - write
    - strcmp
    - struct lxc_container*::set_config_item
    - lxc_container_put
    - struct lxc_container*::state
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:30,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:31,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:32,1
    - Dst: close
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:33,1
    - Dst: lxc_conf_init
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:35,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:36,1
    - Dst: cgroup_init
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:39,1
    - Dst: cgroup_exit
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:40,1
    - Dst: lxc_config_read
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:42,1
    - Dst: cgroup_init
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:45,1
    - Dst: cgroup_exit
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:46,1
    - Dst: lxc_conf_free
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:48,1
    - Dst: unlink
      Src: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 53
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c
    functionUses: 0
    functionsReached:
    - cgroup_exit
    - lxc_conf_free
    - close
    - lxc_make_tmpfile
    - lxc_test_assert_abort
    - lxc_conf_init
    - lxc_config_read
    - unlink
    - cgroup_init
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: statvfs
      Src: /src/lxc/src/tests/rootfs_options.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: has_mount_properties
    functionSourceFile: /src/lxc/src/tests/rootfs_options.c
    functionUses: 0
    functionsReached:
    - statvfs
    linkageType: ''
    returnType: int
    signature: int has_mount_properties(const char *path, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_mount_properties
      Src: /src/lxc/src/tests/rootfs_options.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: rootfs_options
    functionSourceFile: /src/lxc/src/tests/rootfs_options.c
    functionUses: 0
    functionsReached:
    - has_mount_properties
    linkageType: ''
    returnType: int
    signature: int rootfs_options(void *payload)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/rootfs_options.c:77,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:79,1
    - Dst: exit
      Src: /src/lxc/src/tests/rootfs_options.c:80,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/rootfs_options.c:83,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:84,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/rootfs_options.c:88,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:89,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/rootfs_options.c:93,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:94,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/rootfs_options.c:98,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/rootfs_options.c:100,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:101,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/rootfs_options.c:105,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:106,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/rootfs_options.c:110,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:111,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/rootfs_options.c:115,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:116,1
    - Dst: sleep
      Src: /src/lxc/src/tests/rootfs_options.c:121,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/rootfs_options.c:123,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:125,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/rootfs_options.c:129,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:131,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/rootfs_options.c:138,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/rootfs_options.c:138,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:139,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/rootfs_options.c:141,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/rootfs_options.c:142,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/rootfs_options.c:145,1
    - Dst: exit
      Src: /src/lxc/src/tests/rootfs_options.c:146,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 147
    functionName: main
    functionSourceFile: /src/lxc/src/tests/rootfs_options.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_defined
    - exit
    - struct lxc_container*::attach
    - struct lxc_container*::is_running
    - lxc_container_new
    - struct lxc_container*::createl
    - lxc_container_put
    - wait_for_pid
    - lxc_error
    - struct lxc_container*::destroy
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - sleep
    - struct lxc_container*::want_daemonize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/snapshot.c:26,1
    - Dst: struct lxc_container*::snapshot_destroy_all
      Src: /src/lxc/src/tests/snapshot.c:28,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/snapshot.c:29,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/snapshot.c:30,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/snapshot.c:32,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/snapshot.c:35,1
    - Dst: struct lxc_container*::destroy_with_snapshots
      Src: /src/lxc/src/tests/snapshot.c:37,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/snapshot.c:38,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/snapshot.c:41,1
    - Dst: struct lxc_container*::snapshot_destroy_all
      Src: /src/lxc/src/tests/snapshot.c:43,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/snapshot.c:44,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/snapshot.c:45,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/snapshot.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: try_to_remove
    functionSourceFile: /src/lxc/src/tests/snapshot.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::destroy_with_snapshots
    - struct lxc_container*::is_defined
    - lxc_container_new
    - struct lxc_container*::snapshot_destroy_all
    - lxc_container_put
    - struct lxc_container*::destroy
    linkageType: ''
    returnType: void
    signature: void try_to_remove(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:67,1
    - Dst: exit
      Src: /src/lxc/src/tests/snapshot.c:68,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/snapshot.c:71,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:72,1
    - Dst: struct lxc_container*::destroy_with_snapshots
      Src: /src/lxc/src/tests/snapshot.c:73,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/snapshot.c:76,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:77,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/snapshot.c:81,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/snapshot.c:83,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:84,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/snapshot.c:88,1
    - Dst: struct lxc_container*::snapshot
      Src: /src/lxc/src/tests/snapshot.c:90,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:91,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/snapshot.c:96,1
    - Dst: lxc_get_global_config_item
      Src: /src/lxc/src/tests/snapshot.c:96,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:98,1
    - Dst: stat
      Src: /src/lxc/src/tests/snapshot.c:102,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:104,1
    - Dst: struct lxc_container*::snapshot_list
      Src: /src/lxc/src/tests/snapshot.c:108,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:110,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/snapshot.c:114,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:115,1
    - Dst: free
      Src: /src/lxc/src/tests/snapshot.c:120,1
    - Dst: free
      Src: /src/lxc/src/tests/snapshot.c:121,1
    - Dst: struct lxc_container*::snapshot_restore
      Src: /src/lxc/src/tests/snapshot.c:123,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:124,1
    - Dst: struct lxc_container*::snapshot_destroy
      Src: /src/lxc/src/tests/snapshot.c:128,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:129,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/snapshot.c:133,1
    - Dst: is_defined
      Src: /src/lxc/src/tests/snapshot.c:134,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:135,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/snapshot.c:138,1
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/tests/snapshot.c:140,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:142,1
    - Dst: snapshot
      Src: /src/lxc/src/tests/snapshot.c:146,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:147,1
    - Dst: snapshot_list
      Src: /src/lxc/src/tests/snapshot.c:151,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:153,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/snapshot.c:157,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:158,1
    - Dst: free
      Src: /src/lxc/src/tests/snapshot.c:163,1
    - Dst: free
      Src: /src/lxc/src/tests/snapshot.c:164,1
    - Dst: snapshot_restore
      Src: /src/lxc/src/tests/snapshot.c:166,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:167,1
    - Dst: snapshot_destroy
      Src: /src/lxc/src/tests/snapshot.c:171,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:172,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/snapshot.c:177,1
    - Dst: try_to_remove
      Src: /src/lxc/src/tests/snapshot.c:178,1
    - Dst: printf
      Src: /src/lxc/src/tests/snapshot.c:180,1
    - Dst: exit
      Src: /src/lxc/src/tests/snapshot.c:181,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/snapshot.c:184,1
    - Dst: try_to_remove
      Src: /src/lxc/src/tests/snapshot.c:185,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/snapshot.c:187,1
    - Dst: exit
      Src: /src/lxc/src/tests/snapshot.c:188,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 119
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 189
    functionName: main
    functionSourceFile: /src/lxc/src/tests/snapshot.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    - lxc_get_global_config_item
    - is_defined
    - lxc_container_new
    - snapshot_destroy
    - struct lxc_container*::snapshot_destroy
    - struct lxc_container*::clone
    - struct lxc_container*::snapshot_restore
    - free
    - snapshot_list
    - snapshot_restore
    - struct lxc_container*::save_config
    - snprintf
    - struct lxc_container*::snapshot_list
    - struct lxc_container*::destroy_with_snapshots
    - struct lxc_container*::is_defined
    - struct lxc_container*::load_config
    - stat
    - strcmp
    - printf
    - struct lxc_container*::set_config_item
    - lxc_container_put
    - struct lxc_container*::createl
    - try_to_remove
    - snapshot
    - struct lxc_container*::snapshot
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: TSTERR
    functionSourceFile: /src/lxc/src/tests/lxcpath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSTERR(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/lxcpath.c:35,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/lxcpath.c:37,1
    - Dst: struct lxc_container*::get_config_path
      Src: /src/lxc/src/tests/lxcpath.c:41,1
    - Dst: struct lxc_container*::config_file_name
      Src: /src/lxc/src/tests/lxcpath.c:42,1
    - Dst: strncmp
      Src: /src/lxc/src/tests/lxcpath.c:43,1
    - Dst: strlen
      Src: /src/lxc/src/tests/lxcpath.c:43,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/lxcpath.c:44,1
    - Dst: struct lxc_container*::set_config_path
      Src: /src/lxc/src/tests/lxcpath.c:50,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/lxcpath.c:51,1
    - Dst: struct lxc_container*::get_config_path
      Src: /src/lxc/src/tests/lxcpath.c:55,1
    - Dst: free
      Src: /src/lxc/src/tests/lxcpath.c:56,1
    - Dst: struct lxc_container*::config_file_name
      Src: /src/lxc/src/tests/lxcpath.c:57,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxcpath.c:58,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxcpath.c:58,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/lxcpath.c:59,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/lxcpath.c:62,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/lxcpath.c:64,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/lxcpath.c:66,1
    - Dst: struct lxc_container*::get_config_path
      Src: /src/lxc/src/tests/lxcpath.c:70,1
    - Dst: free
      Src: /src/lxc/src/tests/lxcpath.c:71,1
    - Dst: struct lxc_container*::config_file_name
      Src: /src/lxc/src/tests/lxcpath.c:72,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxcpath.c:73,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxcpath.c:73,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/lxcpath.c:74,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/lxcpath.c:81,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 83
    functionName: main
    functionSourceFile: /src/lxc/src/tests/lxcpath.c
    functionUses: 0
    functionsReached:
    - strcmp
    - struct lxc_container*::set_config_path
    - strncmp
    - free
    - strlen
    - lxc_container_new
    - struct lxc_container*::get_config_path
    - lxc_container_put
    - struct lxc_container*::config_file_name
    - TSTERR
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_error
      Src: /src/lxc/src/tests/device_add_remove.c:36,1
    - Dst: exit
      Src: /src/lxc/src/tests/device_add_remove.c:37,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/device_add_remove.c:45,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/device_add_remove.c:48,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/device_add_remove.c:50,1
    - Dst: struct lxc_container*::create
      Src: /src/lxc/src/tests/device_add_remove.c:54,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/device_add_remove.c:55,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/device_add_remove.c:59,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/tests/device_add_remove.c:61,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/device_add_remove.c:62,1
    - Dst: struct lxc_container*::add_device_node
      Src: /src/lxc/src/tests/device_add_remove.c:66,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/device_add_remove.c:67,1
    - Dst: struct lxc_container*::remove_device_node
      Src: /src/lxc/src/tests/device_add_remove.c:71,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/device_add_remove.c:72,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/device_add_remove.c:76,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/device_add_remove.c:77,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/device_add_remove.c:81,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/device_add_remove.c:82,1
    - Dst: read
      Src: /src/lxc/src/tests/device_add_remove.c:92,1
    - Dst: write
      Src: /src/lxc/src/tests/device_add_remove.c:93,1
    - Dst: unlink
      Src: /src/lxc/src/tests/device_add_remove.c:98,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/device_add_remove.c:101,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 103
    functionName: main
    functionSourceFile: /src/lxc/src/tests/device_add_remove.c
    functionUses: 0
    functionsReached:
    - write
    - struct lxc_container*::add_device_node
    - struct lxc_container*::create
    - read
    - fprintf
    - exit
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::stop
    - unlink
    - lxc_error
    - struct lxc_container*::destroy
    - struct lxc_container*::remove_device_node
    - struct lxc_container*::start
    - lxc_log_init
    - struct lxc_container*::want_daemonize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:22,1
    - Dst: func
      Src: /src/lxc/src/tests/list.c:24,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:25,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:26,1
    - Dst: func
      Src: /src/lxc/src/tests/list.c:28,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:30,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:34,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/list.c:35,1
    - Dst: free
      Src: /src/lxc/src/tests/list.c:39,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:43,1
    - Dst: func
      Src: /src/lxc/src/tests/list.c:44,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:46,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:49,1
    - Dst: free
      Src: /src/lxc/src/tests/list.c:50,1
    - Dst: free
      Src: /src/lxc/src/tests/list.c:54,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:58,1
    - Dst: func
      Src: /src/lxc/src/tests/list.c:59,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:61,1
    - Dst: printf
      Src: /src/lxc/src/tests/list.c:65,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/list.c:67,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/list.c:68,1
    - Dst: free
      Src: /src/lxc/src/tests/list.c:70,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/list.c:71,1
    - Dst: free
      Src: /src/lxc/src/tests/list.c:75,1
    - Dst: free
      Src: /src/lxc/src/tests/list.c:76,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - lxcpath
    - type
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 78
    functionName: test_list_func
    functionSourceFile: /src/lxc/src/tests/list.c
    functionUses: 0
    functionsReached:
    - printf
    - strcmp
    - fprintf
    - free
    - lxc_container_put
    - func
    linkageType: ''
    returnType: void
    signature: "void test_list_func(const char *lxcpath, const char *type,\n\t\t\t
      \  int (*func)(const char *path, char ***names,\n\t\t\t\t       struct lxc_container
      ***cret))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_list_func
      Src: /src/lxc/src/tests/list.c:87,1
    - Dst: test_list_func
      Src: /src/lxc/src/tests/list.c:88,1
    - Dst: test_list_func
      Src: /src/lxc/src/tests/list.c:89,1
    - Dst: exit
      Src: /src/lxc/src/tests/list.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: main
    functionSourceFile: /src/lxc/src/tests/list.c
    functionUses: 0
    functionsReached:
    - test_list_func
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/criu_check_feature.c:23,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/criu_check_feature.c:25,1
    - Dst: exit
      Src: /src/lxc/src/tests/criu_check_feature.c:26,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/criu_check_feature.c:29,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/criu_check_feature.c:30,1
    - Dst: struct lxc_container*::migrate
      Src: /src/lxc/src/tests/criu_check_feature.c:35,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/criu_check_feature.c:37,1
    - Dst: struct lxc_container*::migrate
      Src: /src/lxc/src/tests/criu_check_feature.c:43,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/criu_check_feature.c:44,1
    - Dst: struct lxc_container*::migrate
      Src: /src/lxc/src/tests/criu_check_feature.c:49,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/criu_check_feature.c:50,1
    - Dst: struct lxc_container*::migrate
      Src: /src/lxc/src/tests/criu_check_feature.c:55,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/criu_check_feature.c:57,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/criu_check_feature.c:59,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/criu_check_feature.c:61,1
    - Dst: struct lxc_container*::migrate
      Src: /src/lxc/src/tests/criu_check_feature.c:68,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/criu_check_feature.c:69,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/criu_check_feature.c:76,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/criu_check_feature.c:78,1
    - Dst: exit
      Src: /src/lxc/src/tests/criu_check_feature.c:80,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 81
    functionName: main
    functionSourceFile: /src/lxc/src/tests/criu_check_feature.c
    functionUses: 0
    functionsReached:
    - lxc_debug
    - struct lxc_container*::is_defined
    - exit
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::migrate
    - lxc_error
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/tests/proc_pid.c:21,1
    - Dst: open
      Src: /src/lxc/src/tests/proc_pid.c:24,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:26,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/tests/proc_pid.c:30,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:32,1
    - Dst: remove_trailing_newlines
      Src: /src/lxc/src/tests/proc_pid.c:37,1
    - Dst: strequal
      Src: /src/lxc/src/tests/proc_pid.c:39,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 45
    functionName: check_oom_score_adj
    functionSourceFile: /src/lxc/src/tests/proc_pid.c
    functionUses: 0
    functionsReached:
    - strequal
    - INTTYPE_TO_STRLEN
    - remove_trailing_newlines
    - lxc_read_nointr
    - lxc_error
    - open
    linkageType: ''
    returnType: int
    signature: int check_oom_score_adj(void *payload)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/lxc/src/tests/proc_pid.c:57,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/proc_pid.c:58,1
    - Dst: exit
      Src: /src/lxc/src/tests/proc_pid.c:59,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:66,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/proc_pid.c:77,1
    - Dst: exit
      Src: /src/lxc/src/tests/proc_pid.c:78,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/proc_pid.c:80,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:82,1
    - Dst: exit
      Src: /src/lxc/src/tests/proc_pid.c:83,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/proc_pid.c:86,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:87,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/proc_pid.c:91,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:92,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/proc_pid.c:96,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:97,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/proc_pid.c:101,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:102,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/proc_pid.c:106,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:107,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/proc_pid.c:111,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:112,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/proc_pid.c:116,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:117,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/proc_pid.c:121,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:122,1
    - Dst: sleep
      Src: /src/lxc/src/tests/proc_pid.c:127,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/proc_pid.c:129,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:131,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/proc_pid.c:135,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:137,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/proc_pid.c:144,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/proc_pid.c:144,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:145,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/proc_pid.c:148,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/proc_pid.c:149,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/proc_pid.c:152,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/proc_pid.c:155,1
    - Dst: read
      Src: /src/lxc/src/tests/proc_pid.c:160,1
    - Dst: write
      Src: /src/lxc/src/tests/proc_pid.c:161,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/tests/proc_pid.c:166,1
    - Dst: unlink
      Src: /src/lxc/src/tests/proc_pid.c:167,1
    - Dst: exit
      Src: /src/lxc/src/tests/proc_pid.c:169,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 101
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 170
    functionName: main
    functionSourceFile: /src/lxc/src/tests/proc_pid.c
    functionUses: 0
    functionsReached:
    - exit
    - lxc_container_new
    - wait_for_pid
    - lxc_log_init
    - close_prot_errno_disarm
    - struct lxc_container*::destroy
    - struct lxc_container*::want_daemonize
    - lxc_debug
    - struct lxc_container*::is_defined
    - struct lxc_container*::attach
    - unlink
    - lxc_error
    - struct lxc_container*::startl
    - struct lxc_container*::clear_config_item
    - struct lxc_container*::stop
    - read
    - write
    - struct lxc_container*::set_config_item
    - file_exists
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::createl
    - sleep
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:35,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:36,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:41,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:43,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/parse_config_file.c:48,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:50,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/parse_config_file.c:59,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:60,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/parse_config_file.c:64,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/parse_config_file.c:67,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:68,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:73,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:74,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/parse_config_file.c:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - c
    - key
    - value
    - config_file
    - compare
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 82
    functionName: set_get_compare_clear_save_load
    functionSourceFile: /src/lxc/src/tests/parse_config_file.c
    functionUses: 0
    functionsReached:
    - strcmp
    - struct lxc_container*::get_config_item
    - struct lxc_container*::clear_config
    - struct lxc_container*::set_config_item
    - struct lxc_container*::save_config
    - lxc_error
    - struct lxc_container*::load_config
    - struct lxc_container*::clear_config_item
    linkageType: ''
    returnType: int
    signature: "int set_get_compare_clear_save_load(struct lxc_container *c,\n\t\t\t\t\t
      \  const char *key, const char *value,\n\t\t\t\t\t   const char *config_file,\n\t\t\t\t\t
      \  bool compare)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:86,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:87,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:91,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:92,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:96,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:97,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:101,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:102,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:106,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:107,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:111,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:113,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:117,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:119,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:123,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:124,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:128,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:129,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:133,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:134,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:138,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:139,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:143,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:144,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:148,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:149,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:153,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:154,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:158,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:160,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:164,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:165,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:169,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:170,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/parse_config_file.c:174,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 178
    functionName: set_and_clear_complete_netdev
    functionSourceFile: /src/lxc/src/tests/parse_config_file.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::set_config_item
    - struct lxc_container*::clear_config_item
    - struct lxc_container*::clear_config
    - lxc_error
    linkageType: ''
    returnType: int
    signature: int set_and_clear_complete_netdev(struct lxc_container *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:181,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:182,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:186,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:187,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:191,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:192,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/parse_config_file.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 200
    functionName: set_invalid_netdev
    functionSourceFile: /src/lxc/src/tests/parse_config_file.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::set_config_item
    - struct lxc_container*::clear_config
    - lxc_error
    linkageType: ''
    returnType: int
    signature: int set_invalid_netdev(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_idmaps
      Src: /src/lxc/src/tests/parse_config_file.c:240,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 251
    functionName: test_idmap_parser
    functionSourceFile: /src/lxc/src/tests/parse_config_file.c
    functionUses: 0
    functionsReached:
    - parse_idmaps
    - lxc_error
    linkageType: ''
    returnType: int
    signature: int test_idmap_parser(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:260,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:261,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:265,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:266,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:271,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:273,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/parse_config_file.c:278,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:280,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/parse_config_file.c:289,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:290,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/parse_config_file.c:294,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/parse_config_file.c:297,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:298,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:303,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:304,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/parse_config_file.c:308,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/parse_config_file.c:309,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/parse_config_file.c:313,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 6
    argNames:
    - c
    - key
    - value
    - config_file
    - compare
    - network_type
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - char*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 317
    functionName: set_get_compare_clear_save_load_network
    functionSourceFile: /src/lxc/src/tests/parse_config_file.c
    functionUses: 0
    functionsReached:
    - strcmp
    - struct lxc_container*::get_config_item
    - struct lxc_container*::clear_config
    - struct lxc_container*::set_config_item
    - struct lxc_container*::save_config
    - lxc_error
    - struct lxc_container*::load_config
    - struct lxc_container*::clear_config_item
    linkageType: ''
    returnType: int
    signature: "int set_get_compare_clear_save_load_network(\n    struct lxc_container
      *c, const char *key, const char *value,\n    const char *config_file, bool compare,
      const char *network_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/basic.c:21,1
    - Dst: exit
      Src: /src/lxc/src/tests/basic.c:23,1
    - Dst: struct lxc_container*::init_pid
      Src: /src/lxc/src/tests/basic.c:25,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/basic.c:26,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/basic.c:27,1
    - Dst: exit
      Src: /src/lxc/src/tests/basic.c:32,1
    - Dst: exit
      Src: /src/lxc/src/tests/basic.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/lxc/src/tests/basic.c
    functionUses: 0
    functionsReached:
    - exit
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::init_pid
    - struct lxc_container*::destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:27,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:28,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/clonetest.c:30,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:31,1
    - Dst: destroy
      Src: /src/lxc/src/tests/clonetest.c:36,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:37,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:41,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:42,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/clonetest.c:47,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/clonetest.c:49,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:50,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/clonetest.c:54,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/clonetest.c:56,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:57,1
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/tests/clonetest.c:61,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:63,1
    - Dst: is_defined
      Src: /src/lxc/src/tests/clonetest.c:67,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:68,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:72,1
    - Dst: destroy
      Src: /src/lxc/src/tests/clonetest.c:77,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:78,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/clonetest.c:79,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:80,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:83,1
    - Dst: is_defined
      Src: /src/lxc/src/tests/clonetest.c:85,1
    - Dst: destroy
      Src: /src/lxc/src/tests/clonetest.c:86,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:87,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:90,1
    - Dst: is_defined
      Src: /src/lxc/src/tests/clonetest.c:92,1
    - Dst: destroy
      Src: /src/lxc/src/tests/clonetest.c:93,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:94,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:97,1
    - Dst: is_defined
      Src: /src/lxc/src/tests/clonetest.c:99,1
    - Dst: destroy
      Src: /src/lxc/src/tests/clonetest.c:100,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:101,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:106,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:108,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/clonetest.c:112,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:113,1
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/tests/clonetest.c:118,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:119,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:123,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:126,1
    - Dst: is_defined
      Src: /src/lxc/src/tests/clonetest.c:128,1
    - Dst: destroy
      Src: /src/lxc/src/tests/clonetest.c:129,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:130,1
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/tests/clonetest.c:134,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:135,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:139,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:140,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/clonetest.c:143,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:144,1
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/tests/clonetest.c:149,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:150,1
    - Dst: clone
      Src: /src/lxc/src/tests/clonetest.c:155,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:156,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/clonetest.c:160,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:165,1
    - Dst: destroy
      Src: /src/lxc/src/tests/clonetest.c:169,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:170,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/clonetest.c:174,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/clonetest.c:175,1
    - Dst: exit
      Src: /src/lxc/src/tests/clonetest.c:178,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 131
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 179
    functionName: main
    functionSourceFile: /src/lxc/src/tests/clonetest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - destroy
    - struct lxc_container*::is_defined
    - struct lxc_container*::save_config
    - exit
    - is_defined
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::createl
    - struct lxc_container*::destroy
    - struct lxc_container*::load_config
    - struct lxc_container*::clone
    - clone
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/createtest.c:26,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:27,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/createtest.c:32,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:33,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/createtest.c:37,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:38,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/createtest.c:42,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/createtest.c:43,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/createtest.c:45,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:46,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/createtest.c:50,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:51,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/createtest.c:55,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/createtest.c:56,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/createtest.c:57,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/createtest.c:59,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:60,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/createtest.c:64,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:65,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/createtest.c:69,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:70,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/createtest.c:74,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:75,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/createtest.c:79,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/createtest.c:83,1
    - Dst: exit
      Src: /src/lxc/src/tests/createtest.c:84,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 85
    functionName: main
    functionSourceFile: /src/lxc/src/tests/createtest.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - fprintf
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_defined
    - exit
    - lxc_container_new
    - struct lxc_container*::createl
    - lxc_container_put
    - struct lxc_container*::destroy
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - struct lxc_container*::want_daemonize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/tests/sysctls.c:22,1
    - Dst: open
      Src: /src/lxc/src/tests/sysctls.c:25,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:27,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/tests/sysctls.c:31,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:33,1
    - Dst: remove_trailing_newlines
      Src: /src/lxc/src/tests/sysctls.c:38,1
    - Dst: strequal
      Src: /src/lxc/src/tests/sysctls.c:40,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: check_sysctls
    functionSourceFile: /src/lxc/src/tests/sysctls.c
    functionUses: 0
    functionsReached:
    - strequal
    - INTTYPE_TO_STRLEN
    - remove_trailing_newlines
    - lxc_read_nointr
    - lxc_error
    - open
    linkageType: ''
    returnType: int
    signature: int check_sysctls(void *payload)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/lxc/src/tests/sysctls.c:58,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/sysctls.c:59,1
    - Dst: exit
      Src: /src/lxc/src/tests/sysctls.c:60,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:67,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/sysctls.c:78,1
    - Dst: exit
      Src: /src/lxc/src/tests/sysctls.c:79,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/sysctls.c:81,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:83,1
    - Dst: exit
      Src: /src/lxc/src/tests/sysctls.c:84,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/sysctls.c:87,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:88,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/sysctls.c:92,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:93,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/sysctls.c:97,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:98,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/sysctls.c:102,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:103,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/sysctls.c:107,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:108,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/sysctls.c:112,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:113,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/sysctls.c:117,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:118,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/sysctls.c:122,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:123,1
    - Dst: sleep
      Src: /src/lxc/src/tests/sysctls.c:128,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/sysctls.c:130,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:132,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/sysctls.c:136,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:138,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/sysctls.c:145,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/sysctls.c:145,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:146,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/sysctls.c:149,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sysctls.c:150,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/sysctls.c:153,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/sysctls.c:156,1
    - Dst: read
      Src: /src/lxc/src/tests/sysctls.c:161,1
    - Dst: write
      Src: /src/lxc/src/tests/sysctls.c:162,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/tests/sysctls.c:167,1
    - Dst: unlink
      Src: /src/lxc/src/tests/sysctls.c:168,1
    - Dst: exit
      Src: /src/lxc/src/tests/sysctls.c:170,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 101
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 171
    functionName: main
    functionSourceFile: /src/lxc/src/tests/sysctls.c
    functionUses: 0
    functionsReached:
    - exit
    - lxc_container_new
    - wait_for_pid
    - lxc_log_init
    - close_prot_errno_disarm
    - struct lxc_container*::destroy
    - struct lxc_container*::want_daemonize
    - lxc_debug
    - struct lxc_container*::is_defined
    - struct lxc_container*::attach
    - unlink
    - lxc_error
    - struct lxc_container*::startl
    - struct lxc_container*::clear_config_item
    - struct lxc_container*::stop
    - read
    - write
    - struct lxc_container*::set_config_item
    - file_exists
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::createl
    - sleep
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/arch_parse.c:39,1
    - Dst: test_error_ret
      Src: /src/lxc/src/tests/arch_parse.c:41,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/tests/arch_parse.c:43,1
    - Dst: __put_lxc_container*::set_config_item
      Src: /src/lxc/src/tests/arch_parse.c:46,1
    - Dst: test_error_ret
      Src: /src/lxc/src/tests/arch_parse.c:47,1
    - Dst: __put_lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/arch_parse.c:49,1
    - Dst: test_error_ret
      Src: /src/lxc/src/tests/arch_parse.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: parse_valid_architectures
    functionSourceFile: /src/lxc/src/tests/arch_parse.c
    functionUses: 0
    functionsReached:
    - lxc_container_new
    - __put_lxc_container*::set_config_item
    - ARRAY_SIZE
    - __put_lxc_container*::clear_config_item
    - test_error_ret
    linkageType: ''
    returnType: bool
    signature: bool parse_valid_architectures(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_valid_architectures
      Src: /src/lxc/src/tests/arch_parse.c:58,1
    - Dst: exit
      Src: /src/lxc/src/tests/arch_parse.c:59,1
    - Dst: exit
      Src: /src/lxc/src/tests/arch_parse.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/lxc/src/tests/arch_parse.c
    functionUses: 0
    functionsReached:
    - parse_valid_architectures
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/cve-2019-5736.c:28,1
    - Dst: perror
      Src: /src/lxc/src/tests/cve-2019-5736.c:31,1
    - Dst: execlp
      Src: /src/lxc/src/tests/cve-2019-5736.c:35,1
    - Dst: exit
      Src: /src/lxc/src/tests/cve-2019-5736.c:36,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/cve-2019-5736.c:39,1
    - Dst: perror
      Src: /src/lxc/src/tests/cve-2019-5736.c:43,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/cve-2019-5736.c:48,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:49,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/cve-2019-5736.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: destroy_container
    functionSourceFile: /src/lxc/src/tests/cve-2019-5736.c
    functionUses: 1
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int destroy_container(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/cve-2019-5736.c:58,1
    - Dst: perror
      Src: /src/lxc/src/tests/cve-2019-5736.c:61,1
    - Dst: execlp
      Src: /src/lxc/src/tests/cve-2019-5736.c:65,1
    - Dst: exit
      Src: /src/lxc/src/tests/cve-2019-5736.c:66,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/cve-2019-5736.c:69,1
    - Dst: perror
      Src: /src/lxc/src/tests/cve-2019-5736.c:73,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/cve-2019-5736.c:78,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:79,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/cve-2019-5736.c:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 83
    functionName: create_container
    functionSourceFile: /src/lxc/src/tests/cve-2019-5736.c
    functionUses: 1
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int create_container(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/cve-2019-5736.c:94,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:96,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/cve-2019-5736.c:100,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:101,1
    - Dst: create_container
      Src: /src/lxc/src/tests/cve-2019-5736.c:105,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:106,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/cve-2019-5736.c:110,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:112,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/tests/cve-2019-5736.c:116,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/cve-2019-5736.c:117,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:118,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/cve-2019-5736.c:122,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:124,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/cve-2019-5736.c:128,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:129,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/cve-2019-5736.c:133,1
    - Dst: setenv
      Src: /src/lxc/src/tests/cve-2019-5736.c:135,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:136,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/cve-2019-5736.c:142,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:143,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/cve-2019-5736.c:147,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:148,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/cve-2019-5736.c:155,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:156,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/cve-2019-5736.c:160,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:161,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/cve-2019-5736.c:166,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/cve-2019-5736.c:168,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/cve-2019-5736.c:173,1
    - Dst: destroy_container
      Src: /src/lxc/src/tests/cve-2019-5736.c:174,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/cve-2019-5736.c:176,1
    - Dst: exit
      Src: /src/lxc/src/tests/cve-2019-5736.c:177,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 178
    functionName: main
    functionSourceFile: /src/lxc/src/tests/cve-2019-5736.c
    functionUses: 0
    functionsReached:
    - destroy_container
    - strcmp
    - setenv
    - struct lxc_container*::wait
    - fprintf
    - struct lxc_container*::set_config_item
    - create_container
    - struct lxc_container*::is_defined
    - exit
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::want_daemonize
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - struct lxc_container*::state
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/tests/aa.c:21,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:27,1
    - Dst: getline
      Src: /src/lxc/src/tests/aa.c:30,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:32,1
    - Dst: free
      Src: /src/lxc/src/tests/aa.c:33,1
    - Dst: fclose
      Src: /src/lxc/src/tests/aa.c:35,1
    - Dst: fclose
      Src: /src/lxc/src/tests/aa.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: read_file
    functionSourceFile: /src/lxc/src/tests/aa.c
    functionUses: 0
    functionsReached:
    - fclose
    - fprintf
    - free
    - getline
    - fopen
    linkageType: ''
    returnType: char
    signature: char *read_file(char *fname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/aa.c:46,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/aa.c:48,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/aa.c:49,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/aa.c:50,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/aa.c:52,1
    - Dst: is_defined
      Src: /src/lxc/src/tests/aa.c:54,1
    - Dst: destroy
      Src: /src/lxc/src/tests/aa.c:55,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/aa.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: try_to_remove
    functionSourceFile: /src/lxc/src/tests/aa.c
    functionUses: 1
    functionsReached:
    - destroy
    - struct lxc_container*::is_defined
    - is_defined
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::destroy
    linkageType: ''
    returnType: void
    signature: void try_to_remove(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/tests/aa.c:65,1
    - Dst: printf
      Src: /src/lxc/src/tests/aa.c:67,1
    - Dst: fclose
      Src: /src/lxc/src/tests/aa.c:68,1
    - Dst: fflush
      Src: /src/lxc/src/tests/aa.c:69,1
    - Dst: printf
      Src: /src/lxc/src/tests/aa.c:72,1
    - Dst: fflush
      Src: /src/lxc/src/tests/aa.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: test_attach_write_file
    functionSourceFile: /src/lxc/src/tests/aa.c
    functionUses: 0
    functionsReached:
    - printf
    - fflush
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int test_attach_write_file(void* payload)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/lxc/src/tests/aa.c:91,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:93,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/aa.c:99,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:101,1
    - Dst: read
      Src: /src/lxc/src/tests/aa.c:105,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:107,1
    - Dst: strncmp
      Src: /src/lxc/src/tests/aa.c:112,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/aa.c:116,1
    - Dst: close
      Src: /src/lxc/src/tests/aa.c:118,1
    - Dst: close
      Src: /src/lxc/src/tests/aa.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - c
    - fnam
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 121
    functionName: do_test_file_open
    functionSourceFile: /src/lxc/src/tests/aa.c
    functionUses: 0
    functionsReached:
    - pipe
    - close
    - strncmp
    - fprintf
    - struct lxc_container*::attach
    - wait_for_pid
    - read
    linkageType: ''
    returnType: int
    signature: int do_test_file_open(struct lxc_container *c, char *fnam)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_test_file_open
      Src: /src/lxc/src/tests/aa.c:139,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:141,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:145,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:149,1
    - Dst: do_test_file_open
      Src: /src/lxc/src/tests/aa.c:153,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:155,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:159,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 167
    functionName: test_aa_policy
    functionSourceFile: /src/lxc/src/tests/aa.c
    functionUses: 0
    functionsReached:
    - fprintf
    - do_test_file_open
    linkageType: ''
    returnType: bool
    signature: bool test_aa_policy(struct lxc_container *c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: try_to_remove
      Src: /src/lxc/src/tests/aa.c:174,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/aa.c:175,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:177,1
    - Dst: exit
      Src: /src/lxc/src/tests/aa.c:178,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/aa.c:181,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:182,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/aa.c:185,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:186,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/aa.c:189,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/aa.c:190,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:191,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/aa.c:195,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/aa.c:196,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/aa.c:197,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/aa.c:198,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/aa.c:200,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/aa.c:201,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:202,1
    - Dst: test_aa_policy
      Src: /src/lxc/src/tests/aa.c:206,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/aa.c:207,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/aa.c:211,1
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/tests/aa.c:213,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:215,1
    - Dst: want_daemonize
      Src: /src/lxc/src/tests/aa.c:219,1
    - Dst: startl
      Src: /src/lxc/src/tests/aa.c:220,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:221,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/aa.c:226,1
    - Dst: init_pid
      Src: /src/lxc/src/tests/aa.c:226,1
    - Dst: read_file
      Src: /src/lxc/src/tests/aa.c:227,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:229,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:233,1
    - Dst: strncmp
      Src: /src/lxc/src/tests/aa.c:235,1
    - Dst: strlen
      Src: /src/lxc/src/tests/aa.c:235,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:236,1
    - Dst: strstr
      Src: /src/lxc/src/tests/aa.c:239,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/aa.c:240,1
    - Dst: stop
      Src: /src/lxc/src/tests/aa.c:244,1
    - Dst: free
      Src: /src/lxc/src/tests/aa.c:246,1
    - Dst: try_to_remove
      Src: /src/lxc/src/tests/aa.c:247,1
    - Dst: exit
      Src: /src/lxc/src/tests/aa.c:248,1
    - Dst: free
      Src: /src/lxc/src/tests/aa.c:251,1
    - Dst: try_to_remove
      Src: /src/lxc/src/tests/aa.c:252,1
    - Dst: exit
      Src: /src/lxc/src/tests/aa.c:253,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 254
    functionName: main
    functionSourceFile: /src/lxc/src/tests/aa.c
    functionUses: 0
    functionsReached:
    - read_file
    - fprintf
    - exit
    - lxc_container_new
    - struct lxc_container*::clone
    - free
    - want_daemonize
    - strlen
    - struct lxc_container*::save_config
    - snprintf
    - strstr
    - struct lxc_container*::want_daemonize
    - strncmp
    - test_aa_policy
    - struct lxc_container*::is_defined
    - stop
    - struct lxc_container*::startl
    - struct lxc_container*::clear_config_item
    - struct lxc_container*::stop
    - init_pid
    - struct lxc_container*::set_config_item
    - struct lxc_container*::createl
    - startl
    - try_to_remove
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 111
    BranchProfiles: []
    Callsites:
    - Dst: lxc_error
      Src: /src/lxc/src/tests/get_item.c:43,1
    - Dst: exit
      Src: /src/lxc/src/tests/get_item.c:44,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/get_item.c:52,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/get_item.c:55,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:56,1
    - Dst: exit
      Src: /src/lxc/src/tests/get_item.c:57,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:61,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/get_item.c:62,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:66,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/get_item.c:68,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:72,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/get_item.c:73,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/get_item.c:76,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:79,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/get_item.c:80,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/get_item.c:83,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:85,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:86,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:90,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:92,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:95,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:97,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:99,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:102,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:104,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:105,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:109,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:111,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:114,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:116,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:117,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:121,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:123,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:126,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:128,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:129,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:133,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:135,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:138,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:140,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:141,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:145,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:147,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:150,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:152,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:153,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:157,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:158,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:162,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:164,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:167,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:168,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:173,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:174,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:178,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:180,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:183,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:184,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:189,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:190,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:194,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:196,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:199,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:200,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:210,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:211,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:215,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:217,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:220,1
    - Dst: malloc
      Src: /src/lxc/src/tests/get_item.c:223,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:225,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:231,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:233,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:237,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:238,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:241,1
    - Dst: free
      Src: /src/lxc/src/tests/get_item.c:242,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:244,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:245,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:249,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:251,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:254,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:256,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:258,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:262,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:263,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:267,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:269,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:273,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:274,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:277,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:279,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:280,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:284,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:286,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:290,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:291,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:294,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:298,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:300,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:304,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:305,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:308,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:310,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:311,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:315,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:317,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:321,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:322,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:325,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:330,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:332,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:336,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:337,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:341,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:343,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:347,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:348,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:351,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:353,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:354,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:358,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:360,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:364,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:365,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:368,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:370,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:372,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:376,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:377,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:380,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:382,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:383,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:387,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:389,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:393,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:394,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:397,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:402,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:404,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:408,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:409,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:413,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:415,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:419,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:420,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:423,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:425,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:426,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:430,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:432,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:436,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:437,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:440,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:442,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:444,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:448,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:449,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:452,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:454,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:455,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:459,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:461,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/get_item.c:465,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:466,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:469,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:471,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:472,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:476,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:478,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:481,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/get_item.c:483,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/get_item.c:486,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:487,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/get_item.c:490,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/get_item.c:491,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/get_item.c:493,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:494,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/get_item.c:498,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:499,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/get_item.c:502,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/get_item.c:505,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:506,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:510,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:512,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:516,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:518,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:522,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:524,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:527,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:529,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:531,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:534,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:536,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:537,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:541,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:542,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:546,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:547,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:551,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:552,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:556,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:557,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:561,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:563,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:567,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:568,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:572,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:574,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:578,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:579,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:583,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:585,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:589,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:590,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:594,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:596,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:600,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:602,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:605,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:607,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:609,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:612,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:614,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:615,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:619,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:621,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:625,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:627,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:630,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/get_item.c:632,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:634,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:637,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:639,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:640,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:644,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:645,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:649,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:650,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/get_item.c:654,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:655,1
    - Dst: lxc_config_item_is_supported
      Src: /src/lxc/src/tests/get_item.c:659,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:660,1
    - Dst: lxc_config_item_is_supported
      Src: /src/lxc/src/tests/get_item.c:664,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:665,1
    - Dst: lxc_config_item_is_supported
      Src: /src/lxc/src/tests/get_item.c:669,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:670,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/get_item.c:674,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/get_item.c:675,1
    - Dst: printf
      Src: /src/lxc/src/tests/get_item.c:680,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/get_item.c:685,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/get_item.c:686,1
    - Dst: read
      Src: /src/lxc/src/tests/get_item.c:691,1
    - Dst: write
      Src: /src/lxc/src/tests/get_item.c:692,1
    - Dst: close
      Src: /src/lxc/src/tests/get_item.c:696,1
    - Dst: unlink
      Src: /src/lxc/src/tests/get_item.c:698,1
    - Dst: exit
      Src: /src/lxc/src/tests/get_item.c:700,1
    CyclomaticComplexity: 220
    EdgeCount: 220
    ICount: 639
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 701
    functionName: main
    functionSourceFile: /src/lxc/src/tests/get_item.c
    functionUses: 0
    functionsReached:
    - close
    - fprintf
    - exit
    - lxc_container_new
    - lxc_log_init
    - free
    - struct lxc_container*::destroy
    - lxc_debug
    - unlink
    - lxc_error
    - write
    - read
    - struct lxc_container*::clear_config_item
    - strcmp
    - printf
    - struct lxc_container*::get_config_item
    - struct lxc_container*::set_config_item
    - lxc_config_item_is_supported
    - lxc_container_put
    - struct lxc_container*::createl
    - malloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reboot
      Src: /src/lxc/src/tests/reboot.c:32,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:33,1
    - Dst: strerror
      Src: /src/lxc/src/tests/reboot.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: do_reboot
    functionSourceFile: /src/lxc/src/tests/reboot.c
    functionUses: 0
    functionsReached:
    - printf
    - reboot
    - strerror
    linkageType: ''
    returnType: int
    signature: int do_reboot(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/lxc/src/tests/reboot.c:41,1
    - Dst: __clone2
      Src: /src/lxc/src/tests/reboot.c:46,1
    - Dst: clone
      Src: /src/lxc/src/tests/reboot.c:49,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:52,1
    - Dst: strerror
      Src: /src/lxc/src/tests/reboot.c:52,1
    - Dst: wait
      Src: /src/lxc/src/tests/reboot.c:56,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:57,1
    - Dst: strerror
      Src: /src/lxc/src/tests/reboot.c:57,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/tests/reboot.c:61,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:63,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/tests/reboot.c:68,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - cmd
    - sig
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 74
    functionName: test_reboot
    functionSourceFile: /src/lxc/src/tests/reboot.c
    functionUses: 0
    functionsReached:
    - printf
    - WIFSIGNALED
    - __clone2
    - alloca
    - wait
    - strerror
    - WTERMSIG
    - clone
    linkageType: ''
    returnType: int
    signature: int test_reboot(int cmd, int sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/tests/reboot.c:78,1
    - Dst: fscanf
      Src: /src/lxc/src/tests/reboot.c:85,1
    - Dst: fclose
      Src: /src/lxc/src/tests/reboot.c:86,1
    - Dst: reboot
      Src: /src/lxc/src/tests/reboot.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: have_reboot_patch
    functionSourceFile: /src/lxc/src/tests/reboot.c
    functionUses: 0
    functionsReached:
    - reboot
    - fclose
    - fscanf
    - fopen
    linkageType: ''
    returnType: int
    signature: int have_reboot_patch(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/lxc/src/tests/reboot.c:101,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:102,1
    - Dst: have_reboot_patch
      Src: /src/lxc/src/tests/reboot.c:106,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:108,1
    - Dst: test_reboot
      Src: /src/lxc/src/tests/reboot.c:112,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:114,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:117,1
    - Dst: test_reboot
      Src: /src/lxc/src/tests/reboot.c:119,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:122,1
    - Dst: test_reboot
      Src: /src/lxc/src/tests/reboot.c:124,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:127,1
    - Dst: test_reboot
      Src: /src/lxc/src/tests/reboot.c:129,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:132,1
    - Dst: test_reboot
      Src: /src/lxc/src/tests/reboot.c:134,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:137,1
    - Dst: printf
      Src: /src/lxc/src/tests/reboot.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 141
    functionName: main
    functionSourceFile: /src/lxc/src/tests/reboot.c
    functionUses: 0
    functionsReached:
    - printf
    - have_reboot_patch
    - test_reboot
    - getuid
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: TSTERR
    functionSourceFile: /src/lxc/src/tests/console.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSTERR(fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/tests/console.c:33,1
    - Dst: close
      Src: /src/lxc/src/tests/console.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ttyfd
    - ptxfd
    argTypes:
    - int[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: test_console_close_all
    functionSourceFile: /src/lxc/src/tests/console.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: "void test_console_close_all(int ttyfd[MAXCONSOLES],\n\t\t\t\t   int
      ptxfd[MAXCONSOLES])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::console_getfd
      Src: /src/lxc/src/tests/console.c:56,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:58,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:64,1
    - Dst: struct lxc_container*::console_getfd
      Src: /src/lxc/src/tests/console.c:69,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:71,1
    - Dst: close
      Src: /src/lxc/src/tests/console.c:74,1
    - Dst: close
      Src: /src/lxc/src/tests/console.c:75,1
    - Dst: struct lxc_container*::console_getfd
      Src: /src/lxc/src/tests/console.c:82,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:89,1
    - Dst: test_console_close_all
      Src: /src/lxc/src/tests/console.c:93,1
    - Dst: test_console_close_all
      Src: /src/lxc/src/tests/console.c:99,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 103
    functionName: test_console_running_container
    functionSourceFile: /src/lxc/src/tests/console.c
    functionUses: 0
    functionsReached:
    - TSTERR
    - struct lxc_container*::console_getfd
    - close
    - test_console_close_all
    linkageType: ''
    returnType: int
    signature: int test_console_running_container(struct lxc_container *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/lxc/src/tests/console.c:120,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:122,1
    - Dst: strerror
      Src: /src/lxc/src/tests/console.c:122,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/console.c:128,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:129,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/console.c:133,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/console.c:134,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/console.c:135,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/console.c:136,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/console.c:139,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:140,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/console.c:144,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/console.c:145,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/console.c:146,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/console.c:147,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/console.c:148,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/console.c:150,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/console.c:151,1
    - Dst: test_console_running_container
      Src: /src/lxc/src/tests/console.c:155,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/console.c:157,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/console.c:160,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/console.c:163,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - lxcpath
    - group
    - name
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 167
    functionName: test_console
    functionSourceFile: /src/lxc/src/tests/console.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_defined
    - strerror
    - struct lxc_container*::save_config
    - struct lxc_container*::destroy
    - test_console_running_container
    - lxc_container_new
    - struct lxc_container*::createl
    - lxc_container_put
    - struct lxc_container*::want_daemonize
    - TSTERR
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - mkdir
    linkageType: ''
    returnType: int
    signature: "int test_console(const char *lxcpath,\n\t\t\tconst char *group, const
      char *name,\n\t\t\tconst char *template)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_console
      Src: /src/lxc/src/tests/console.c:173,1
    - Dst: test_console
      Src: /src/lxc/src/tests/console.c:177,1
    - Dst: printf
      Src: /src/lxc/src/tests/console.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 185
    functionName: main
    functionSourceFile: /src/lxc/src/tests/console.c
    functionUses: 0
    functionsReached:
    - printf
    - test_console
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: TSTOUT
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSTOUT(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: TSTERR
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSTERR(fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: enabled
      Src: /src/lxc/src/tests/attach.c:41,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/attach.c:42,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/attach.c:46,1
    - Dst: file_exists
      Src: /src/lxc/src/tests/attach.c:48,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:54,1
    - Dst: exit
      Src: /src/lxc/src/tests/attach.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: test_lsm_detect
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - strcmp
    - enabled
    - exit
    - file_exists
    - TSTERR
    linkageType: ''
    returnType: void
    signature: void test_lsm_detect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/attach.c:63,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/attach.c:64,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/attach.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: test_attach_lsm_set_config
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::set_config_item
    - struct lxc_container*::load_config
    - struct lxc_container*::save_config
    linkageType: ''
    returnType: void
    signature: void test_attach_lsm_set_config(struct lxc_container *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:70,1
    - Dst: process_label_get
      Src: /src/lxc/src/tests/attach.c:70,1
    - Dst: syscall
      Src: /src/lxc/src/tests/attach.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: test_attach_lsm_func_func
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - TSTOUT
    - syscall
    - process_label_get
    linkageType: ''
    returnType: int
    signature: int test_attach_lsm_func_func(void* payload)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:82,1
    - Dst: pipe
      Src: /src/lxc/src/tests/attach.c:84,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:86,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/attach.c:92,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:94,1
    - Dst: read
      Src: /src/lxc/src/tests/attach.c:98,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:100,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/attach.c:105,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:106,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/attach.c:113,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:115,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 118
    functionName: test_attach_lsm_func
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - TSTOUT
    - strcmp
    - pipe
    - close
    - struct lxc_container*::attach
    - wait_for_pid
    - TSTERR
    - read
    linkageType: ''
    returnType: int
    signature: int test_attach_lsm_func(struct lxc_container *ct)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:131,1
    - Dst: pipe
      Src: /src/lxc/src/tests/attach.c:133,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:135,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/attach.c:140,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:142,1
    - Dst: read
      Src: /src/lxc/src/tests/attach.c:146,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:148,1
    - Dst: strchr
      Src: /src/lxc/src/tests/attach.c:152,1
    - Dst: strchr
      Src: /src/lxc/src/tests/attach.c:155,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/attach.c:160,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:161,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/attach.c:167,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:169,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:170,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 172
    functionName: test_attach_lsm_cmd
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - TSTOUT
    - strcmp
    - pipe
    - close
    - struct lxc_container*::attach
    - strchr
    - wait_for_pid
    - TSTERR
    - read
    linkageType: ''
    returnType: int
    signature: int test_attach_lsm_cmd(struct lxc_container *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: test_attach_lsm_set_config
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_attach_lsm_set_config(struct lxc_container *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: test_attach_lsm_func
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_attach_lsm_func(struct lxc_container *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: test_attach_lsm_cmd
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_attach_lsm_cmd(struct lxc_container *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:181,1
    - Dst: syscall
      Src: /src/lxc/src/tests/attach.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: test_attach_func_func
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - TSTOUT
    - syscall
    linkageType: ''
    returnType: int
    signature: int test_attach_func_func(void* payload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:193,1
    - Dst: pipe
      Src: /src/lxc/src/tests/attach.c:199,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:201,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/attach.c:206,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:208,1
    - Dst: read
      Src: /src/lxc/src/tests/attach.c:212,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:214,1
    - Dst: atoi
      Src: /src/lxc/src/tests/attach.c:224,1
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:225,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/attach.c:229,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:231,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 234
    functionName: test_attach_func
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - TSTOUT
    - pipe
    - close
    - struct lxc_container*::attach
    - atoi
    - wait_for_pid
    - TSTERR
    - read
    linkageType: ''
    returnType: int
    signature: int test_attach_func(struct lxc_container *ct)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:244,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/attach.c:245,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:247,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/attach.c:251,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:253,1
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:257,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/attach.c:259,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:261,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/attach.c:265,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 271
    functionName: test_attach_cmd
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - TSTERR
    - TSTOUT
    - struct lxc_container*::attach
    - wait_for_pid
    linkageType: ''
    returnType: int
    signature: int test_attach_cmd(struct lxc_container *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/attach.c:279,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/attach.c:280,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/attach.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ct
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: test_ct_destroy
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::destroy
    - lxc_container_put
    - struct lxc_container*::stop
    linkageType: ''
    returnType: void
    signature: void test_ct_destroy(struct lxc_container *ct)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/lxc/src/tests/attach.c:299,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:301,1
    - Dst: strerror
      Src: /src/lxc/src/tests/attach.c:301,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/attach.c:306,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:307,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/attach.c:310,1
    - Dst: test_ct_destroy
      Src: /src/lxc/src/tests/attach.c:311,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/attach.c:312,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/attach.c:314,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:315,1
    - Dst: enabled
      Src: /src/lxc/src/tests/attach.c:319,1
    - Dst: test_attach_lsm_set_config
      Src: /src/lxc/src/tests/attach.c:320,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/attach.c:322,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/attach.c:323,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:324,1
    - Dst: test_ct_destroy
      Src: /src/lxc/src/tests/attach.c:330,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - lxcpath
    - group
    - name
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 334
    functionName: test_ct_create
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - test_ct_destroy
    - test_attach_lsm_set_config
    - struct lxc_container*::is_defined
    - strerror
    - enabled
    - lxc_container_new
    - struct lxc_container*::createl
    - struct lxc_container*::want_daemonize
    - TSTERR
    - struct lxc_container*::startl
    - mkdir
    linkageType: ''
    returnType: struct lxc_container
    signature: "struct lxc_container *test_ct_create(const char *lxcpath,\n\t\t\t\tconst
      char *group, const char *name,\n\t\t\t\tconst char *template)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:342,1
    - Dst: test_ct_create
      Src: /src/lxc/src/tests/attach.c:343,1
    - Dst: test_attach_cmd
      Src: /src/lxc/src/tests/attach.c:347,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:349,1
    - Dst: test_attach_func
      Src: /src/lxc/src/tests/attach.c:353,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:355,1
    - Dst: enabled
      Src: /src/lxc/src/tests/attach.c:359,1
    - Dst: test_attach_lsm_cmd
      Src: /src/lxc/src/tests/attach.c:360,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:362,1
    - Dst: test_attach_lsm_func
      Src: /src/lxc/src/tests/attach.c:366,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/attach.c:368,1
    - Dst: test_ct_destroy
      Src: /src/lxc/src/tests/attach.c:375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - lxcpath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 378
    functionName: test_attach
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - TSTOUT
    - test_ct_destroy
    - test_attach_lsm_func
    - test_attach_func
    - test_ct_create
    - test_attach_cmd
    - enabled
    - TSTERR
    - test_attach_lsm_cmd
    linkageType: ''
    returnType: int
    signature: int test_attach(const char *lxcpath, const char *name, const char *template)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_error
      Src: /src/lxc/src/tests/attach.c:393,1
    - Dst: exit
      Src: /src/lxc/src/tests/attach.c:394,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/attach.c:396,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:397,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/attach.c:406,1
    - Dst: test_lsm_detect
      Src: /src/lxc/src/tests/attach.c:409,1
    - Dst: test_attach
      Src: /src/lxc/src/tests/attach.c:410,1
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:414,1
    - Dst: test_attach
      Src: /src/lxc/src/tests/attach.c:415,1
    - Dst: TSTOUT
      Src: /src/lxc/src/tests/attach.c:419,1
    - Dst: open
      Src: /src/lxc/src/tests/attach.c:426,1
    - Dst: read
      Src: /src/lxc/src/tests/attach.c:430,1
    - Dst: write
      Src: /src/lxc/src/tests/attach.c:431,1
    - Dst: close
      Src: /src/lxc/src/tests/attach.c:435,1
    - Dst: rmdir
      Src: /src/lxc/src/tests/attach.c:438,1
    - Dst: unlink
      Src: /src/lxc/src/tests/attach.c:439,1
    - Dst: exit
      Src: /src/lxc/src/tests/attach.c:440,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 441
    functionName: main
    functionSourceFile: /src/lxc/src/tests/attach.c
    functionUses: 0
    functionsReached:
    - test_attach
    - TSTOUT
    - write
    - close
    - lxc_debug
    - test_lsm_detect
    - exit
    - unlink
    - rmdir
    - lxc_error
    - read
    - lxc_log_init
    - open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/tests/may_control.c:15,1
    - Dst: exit
      Src: /src/lxc/src/tests/may_control.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - me
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: usage
    functionSourceFile: /src/lxc/src/tests/may_control.c
    functionUses: 0
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *me)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/lxc/src/tests/may_control.c:26,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/may_control.c:33,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/tests/may_control.c:35,1
    - Dst: printf
      Src: /src/lxc/src/tests/may_control.c:37,1
    - Dst: exit
      Src: /src/lxc/src/tests/may_control.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: main
    functionSourceFile: /src/lxc/src/tests/may_control.c
    functionUses: 0
    functionsReached:
    - usage
    - printf
    - exit
    - lxc_container_new
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:42,1
    - Dst: exit
      Src: /src/lxc/src/tests/api_reboot.c:43,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/api_reboot.c:45,1
    - Dst: close
      Src: /src/lxc/src/tests/api_reboot.c:46,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/api_reboot.c:55,1
    - Dst: exit
      Src: /src/lxc/src/tests/api_reboot.c:56,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/api_reboot.c:61,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:63,1
    - Dst: exit
      Src: /src/lxc/src/tests/api_reboot.c:64,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/api_reboot.c:67,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:68,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/api_reboot.c:72,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:73,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/api_reboot.c:77,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:78,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/api_reboot.c:82,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/api_reboot.c:84,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:85,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/api_reboot.c:89,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:90,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/api_reboot.c:94,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:95,1
    - Dst: sleep
      Src: /src/lxc/src/tests/api_reboot.c:104,1
    - Dst: struct lxc_container*::reboot2
      Src: /src/lxc/src/tests/api_reboot.c:106,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:107,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/api_reboot.c:111,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:112,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/api_reboot.c:115,1
    - Dst: sleep
      Src: /src/lxc/src/tests/api_reboot.c:121,1
    - Dst: struct lxc_container*::reboot2
      Src: /src/lxc/src/tests/api_reboot.c:124,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:125,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/api_reboot.c:128,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/api_reboot.c:133,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/api_reboot.c:133,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:134,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/api_reboot.c:136,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/api_reboot.c:137,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/api_reboot.c:140,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/api_reboot.c:143,1
    - Dst: open
      Src: /src/lxc/src/tests/api_reboot.c:147,1
    - Dst: read
      Src: /src/lxc/src/tests/api_reboot.c:151,1
    - Dst: write
      Src: /src/lxc/src/tests/api_reboot.c:152,1
    - Dst: close
      Src: /src/lxc/src/tests/api_reboot.c:156,1
    - Dst: unlink
      Src: /src/lxc/src/tests/api_reboot.c:159,1
    - Dst: exit
      Src: /src/lxc/src/tests/api_reboot.c:161,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 100
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/lxc/src/tests/api_reboot.c
    functionUses: 0
    functionsReached:
    - close
    - struct lxc_container*::clear_config
    - exit
    - lxc_container_new
    - lxc_log_init
    - struct lxc_container*::reboot2
    - struct lxc_container*::destroy
    - open
    - struct lxc_container*::want_daemonize
    - lxc_debug
    - struct lxc_container*::is_defined
    - unlink
    - lxc_error
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - read
    - struct lxc_container*::stop
    - write
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::createl
    - sleep
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_set
      Src: /src/lxc/src/tests/capabilities.c:37,1
    - Dst: cap_get_bound
      Src: /src/lxc/src/tests/capabilities.c:41,1
    - Dst: cap_get_bound
      Src: /src/lxc/src/tests/capabilities.c:43,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:45,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: capabilities_allow
    functionSourceFile: /src/lxc/src/tests/capabilities.c
    functionUses: 0
    functionsReached:
    - is_set
    - cap_get_bound
    - lxc_error
    linkageType: ''
    returnType: int
    signature: int capabilities_allow(void *payload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_set
      Src: /src/lxc/src/tests/capabilities.c:58,1
    - Dst: cap_get_bound
      Src: /src/lxc/src/tests/capabilities.c:62,1
    - Dst: cap_get_bound
      Src: /src/lxc/src/tests/capabilities.c:64,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:66,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: capabilities_deny
    functionSourceFile: /src/lxc/src/tests/capabilities.c
    functionUses: 0
    functionsReached:
    - is_set
    - cap_get_bound
    - lxc_error
    linkageType: ''
    returnType: int
    signature: int capabilities_deny(void *payload)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:88,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/capabilities.c:99,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/capabilities.c:102,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:104,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/capabilities.c:108,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:109,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/capabilities.c:113,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:114,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/capabilities.c:118,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:119,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/capabilities.c:123,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:124,1
    - Dst: struct lxc_container*::clear_config_item
      Src: /src/lxc/src/tests/capabilities.c:128,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:129,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/capabilities.c:134,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:135,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/capabilities.c:139,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:140,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/capabilities.c:145,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:146,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/capabilities.c:150,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:151,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/capabilities.c:155,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:157,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/capabilities.c:161,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:163,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/capabilities.c:170,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/capabilities.c:170,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:171,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/capabilities.c:174,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/capabilities.c:175,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/capabilities.c:178,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/capabilities.c:181,1
    - Dst: open
      Src: /src/lxc/src/tests/capabilities.c:185,1
    - Dst: read
      Src: /src/lxc/src/tests/capabilities.c:189,1
    - Dst: write
      Src: /src/lxc/src/tests/capabilities.c:190,1
    - Dst: close
      Src: /src/lxc/src/tests/capabilities.c:194,1
    - Dst: unlink
      Src: /src/lxc/src/tests/capabilities.c:197,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 107
    argCount: 1
    argNames:
    - allow
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 200
    functionName: run
    functionSourceFile: /src/lxc/src/tests/capabilities.c
    functionUses: 0
    functionsReached:
    - close
    - lxc_container_new
    - wait_for_pid
    - lxc_log_init
    - struct lxc_container*::destroy
    - open
    - struct lxc_container*::want_daemonize
    - lxc_debug
    - struct lxc_container*::is_defined
    - struct lxc_container*::attach
    - unlink
    - lxc_error
    - write
    - read
    - struct lxc_container*::stop
    - struct lxc_container*::startl
    - struct lxc_container*::clear_config_item
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::createl
    linkageType: ''
    returnType: int
    signature: int run(int (*test)(void *), bool allow)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_caps_last_cap
      Src: /src/lxc/src/tests/capabilities.c:207,1
    - Dst: _exit
      Src: /src/lxc/src/tests/capabilities.c:209,1
    - Dst: BITS_TO_LONGS
      Src: /src/lxc/src/tests/capabilities.c:211,1
    - Dst: zalloc
      Src: /src/lxc/src/tests/capabilities.c:212,1
    - Dst: _exit
      Src: /src/lxc/src/tests/capabilities.c:214,1
    - Dst: prctl
      Src: /src/lxc/src/tests/capabilities.c:217,1
    - Dst: prctl_arg
      Src: /src/lxc/src/tests/capabilities.c:217,1
    - Dst: set_bit
      Src: /src/lxc/src/tests/capabilities.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 222
    functionName: capabilities_init
    functionSourceFile: /src/lxc/src/tests/capabilities.c
    functionUses: 0
    functionsReached:
    - prctl_arg
    - set_bit
    - prctl
    - _exit
    - lxc_caps_last_cap
    - BITS_TO_LONGS
    - zalloc
    linkageType: ''
    returnType: void
    signature: void capabilities_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/tests/capabilities.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: capabilities_exit
    functionSourceFile: /src/lxc/src/tests/capabilities.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void capabilities_exit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run
      Src: /src/lxc/src/tests/capabilities.c:231,1
    - Dst: exit
      Src: /src/lxc/src/tests/capabilities.c:232,1
    - Dst: run
      Src: /src/lxc/src/tests/capabilities.c:234,1
    - Dst: exit
      Src: /src/lxc/src/tests/capabilities.c:235,1
    - Dst: exit
      Src: /src/lxc/src/tests/capabilities.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: main
    functionSourceFile: /src/lxc/src/tests/capabilities.c
    functionUses: 0
    functionsReached:
    - run
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/capabilities.c:244,1
    - Dst: exit
      Src: /src/lxc/src/tests/capabilities.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: main
    functionSourceFile: /src/lxc/src/tests/capabilities.c
    functionUses: 0
    functionsReached:
    - exit
    - lxc_debug
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/share_ns.c:46,1
    - Dst: sprintf
      Src: /src/lxc/src/tests/share_ns.c:48,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/share_ns.c:49,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:51,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/share_ns.c:55,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:56,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/share_ns.c:60,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:61,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/share_ns.c:65,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:66,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/share_ns.c:70,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/share_ns.c:72,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:73,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/share_ns.c:78,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:79,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/share_ns.c:84,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:85,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/share_ns.c:89,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:90,1
    - Dst: sprintf
      Src: /src/lxc/src/tests/share_ns.c:94,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/share_ns.c:96,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:97,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/share_ns.c:101,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:102,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/share_ns.c:106,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:107,1
    - Dst: struct lxc_container*::init_pid
      Src: /src/lxc/src/tests/share_ns.c:111,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:113,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/share_ns.c:118,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:120,1
    - Dst: readlink
      Src: /src/lxc/src/tests/share_ns.c:124,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:126,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/share_ns.c:131,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:132,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/share_ns.c:135,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/share_ns.c:138,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:140,1
    - Dst: readlink
      Src: /src/lxc/src/tests/share_ns.c:144,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:146,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/share_ns.c:151,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:152,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/share_ns.c:155,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/share_ns.c:160,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/share_ns.c:160,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:161,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/share_ns.c:163,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:164,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/share_ns.c:166,1
    - Dst: pthread_exit
      Src: /src/lxc/src/tests/share_ns.c:169,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 116
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 170
    functionName: ns_sharing_wrapper
    functionSourceFile: /src/lxc/src/tests/share_ns.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - lxc_container_new
    - snprintf
    - struct lxc_container*::destroy
    - struct lxc_container*::want_daemonize
    - lxc_debug
    - struct lxc_container*::is_defined
    - sprintf
    - readlink
    - lxc_error
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - strcmp
    - struct lxc_container*::set_config_item
    - pthread_exit
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::createl
    - struct lxc_container*::init_pid
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn *ns_sharing_wrapper(void *data)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: pthread_attr_init
      Src: /src/lxc/src/tests/share_ns.c:185,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/share_ns.c:187,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:189,1
    - Dst: exit
      Src: /src/lxc/src/tests/share_ns.c:190,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/share_ns.c:193,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:194,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/share_ns.c:198,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:199,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/share_ns.c:203,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:204,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/share_ns.c:208,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/share_ns.c:210,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:211,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/share_ns.c:215,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:216,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/share_ns.c:220,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:221,1
    - Dst: struct lxc_container*::init_pid
      Src: /src/lxc/src/tests/share_ns.c:225,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:227,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/share_ns.c:232,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:234,1
    - Dst: readlink
      Src: /src/lxc/src/tests/share_ns.c:238,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:240,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/share_ns.c:247,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:249,1
    - Dst: readlink
      Src: /src/lxc/src/tests/share_ns.c:253,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:255,1
    - Dst: sleep
      Src: /src/lxc/src/tests/share_ns.c:260,1
    - Dst: malloc
      Src: /src/lxc/src/tests/share_ns.c:262,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:264,1
    - Dst: malloc
      Src: /src/lxc/src/tests/share_ns.c:268,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:270,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/share_ns.c:277,1
    - Dst: memset
      Src: /src/lxc/src/tests/share_ns.c:280,1
    - Dst: memset
      Src: /src/lxc/src/tests/share_ns.c:281,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/share_ns.c:286,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/share_ns.c:287,1
    - Dst: pthread_create
      Src: /src/lxc/src/tests/share_ns.c:289,1
    - Dst: pthread_join
      Src: /src/lxc/src/tests/share_ns.c:295,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:300,1
    - Dst: free
      Src: /src/lxc/src/tests/share_ns.c:312,1
    - Dst: free
      Src: /src/lxc/src/tests/share_ns.c:313,1
    - Dst: pthread_attr_destroy
      Src: /src/lxc/src/tests/share_ns.c:314,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/share_ns.c:316,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/share_ns.c:316,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:317,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/share_ns.c:319,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/share_ns.c:320,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/share_ns.c:322,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/share_ns.c:324,1
    - Dst: exit
      Src: /src/lxc/src/tests/share_ns.c:326,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 126
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 327
    functionName: main
    functionSourceFile: /src/lxc/src/tests/share_ns.c
    functionUses: 0
    functionsReached:
    - pthread_attr_destroy
    - struct lxc_container*::clear_config
    - exit
    - lxc_container_new
    - free
    - snprintf
    - struct lxc_container*::destroy
    - pthread_create
    - memset
    - struct lxc_container*::want_daemonize
    - lxc_debug
    - struct lxc_container*::is_defined
    - readlink
    - lxc_error
    - pthread_attr_init
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::createl
    - struct lxc_container*::init_pid
    - pthread_join
    - sleep
    - malloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/state_server.c:36,1
    - Dst: struct thread_args*::c::shutdown
      Src: /src/lxc/src/tests/state_server.c:38,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/state_server.c:40,1
    - Dst: pthread_exit
      Src: /src/lxc/src/tests/state_server.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: state_wrapper
    functionSourceFile: /src/lxc/src/tests/state_server.c
    functionUses: 0
    functionsReached:
    - pthread_exit
    - struct thread_args*::c::shutdown
    - lxc_debug
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn *state_wrapper(void *data)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/state_server.c:55,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:57,1
    - Dst: exit
      Src: /src/lxc/src/tests/state_server.c:58,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/state_server.c:61,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:62,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/state_server.c:66,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:67,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/state_server.c:71,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:72,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/state_server.c:76,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/state_server.c:78,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:79,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/state_server.c:83,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:84,1
    - Dst: pthread_attr_init
      Src: /src/lxc/src/tests/state_server.c:88,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/state_server.c:91,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/state_server.c:93,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:94,1
    - Dst: sleep
      Src: /src/lxc/src/tests/state_server.c:98,1
    - Dst: pthread_create
      Src: /src/lxc/src/tests/state_server.c:108,1
    - Dst: pthread_join
      Src: /src/lxc/src/tests/state_server.c:114,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:119,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/state_server.c:128,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/state_server.c:128,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:129,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/state_server.c:131,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/state_server.c:132,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/state_server.c:135,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/state_server.c:137,1
    - Dst: exit
      Src: /src/lxc/src/tests/state_server.c:139,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 140
    functionName: main
    functionSourceFile: /src/lxc/src/tests/state_server.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - struct lxc_container*::clear_config
    - lxc_debug
    - struct lxc_container*::is_defined
    - exit
    - struct lxc_container*::is_running
    - struct lxc_container*::destroy
    - lxc_container_new
    - struct lxc_container*::createl
    - lxc_container_put
    - lxc_error
    - pthread_join
    - pthread_attr_init
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - sleep
    - struct lxc_container*::want_daemonize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/tests/lxc-test-utils.c:34,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:36,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:38,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:38,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:39,1
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/tests/lxc-test-utils.c:43,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:45,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:47,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:47,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:48,1
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/tests/lxc-test-utils.c:51,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:53,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:55,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:55,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:56,1
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/tests/lxc-test-utils.c:60,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:62,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:64,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:64,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 66
    functionName: test_lxc_path_simplify
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - strcmp
    - free
    - lxc_test_assert_abort
    - exit
    - lxc_path_simplify
    linkageType: ''
    returnType: void
    signature: void test_lxc_path_simplify(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:117,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:119,1
    - Dst: open
      Src: /src/lxc/src/tests/lxc-test-utils.c:123,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:125,1
    - Dst: unshare
      Src: /src/lxc/src/tests/lxc-test-utils.c:129,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:130,1
    - Dst: close
      Src: /src/lxc/src/tests/lxc-test-utils.c:131,1
    - Dst: mount
      Src: /src/lxc/src/tests/lxc-test-utils.c:136,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:137,1
    - Dst: strerror
      Src: /src/lxc/src/tests/lxc-test-utils.c:137,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/tests/lxc-test-utils.c:141,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:143,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/tests/lxc-test-utils.c:147,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:149,1
    - Dst: fdopen
      Src: /src/lxc/src/tests/lxc-test-utils.c:153,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:155,1
    - Dst: fdopen
      Src: /src/lxc/src/tests/lxc-test-utils.c:159,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:161,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:167,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:168,1
    - Dst: fclose
      Src: /src/lxc/src/tests/lxc-test-utils.c:172,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:178,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:181,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:182,1
    - Dst: fclose
      Src: /src/lxc/src/tests/lxc-test-utils.c:186,1
    - Dst: mount
      Src: /src/lxc/src/tests/lxc-test-utils.c:190,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:191,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:195,1
    - Dst: detect_ramfs_rootfs
      Src: /src/lxc/src/tests/lxc-test-utils.c:195,1
    - Dst: mount
      Src: /src/lxc/src/tests/lxc-test-utils.c:197,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:198,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:202,1
    - Dst: detect_ramfs_rootfs
      Src: /src/lxc/src/tests/lxc-test-utils.c:202,1
    - Dst: fclose
      Src: /src/lxc/src/tests/lxc-test-utils.c:207,1
    - Dst: close
      Src: /src/lxc/src/tests/lxc-test-utils.c:209,1
    - Dst: fclose
      Src: /src/lxc/src/tests/lxc-test-utils.c:212,1
    - Dst: close
      Src: /src/lxc/src/tests/lxc-test-utils.c:214,1
    - Dst: setns
      Src: /src/lxc/src/tests/lxc-test-utils.c:217,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:218,1
    - Dst: strerror
      Src: /src/lxc/src/tests/lxc-test-utils.c:218,1
    - Dst: close
      Src: /src/lxc/src/tests/lxc-test-utils.c:221,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:227,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 228
    functionName: test_detect_ramfs_rootfs
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fclose
    - close
    - fprintf
    - lxc_make_tmpfile
    - lxc_test_assert_abort
    - unshare
    - strerror
    - setns
    - snprintf
    - exit
    - lxc_error
    - fdopen
    - detect_ramfs_rootfs
    - open
    - mount
    linkageType: ''
    returnType: void
    signature: void test_detect_ramfs_rootfs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/tests/lxc-test-utils.c:234,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:236,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:236,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:237,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:237,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:239,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:241,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:243,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:243,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:245,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:247,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:249,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:249,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:251,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:251,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:252,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:252,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:253,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:253,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:254,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:254,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:255,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:255,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:256,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:256,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:257,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:257,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:258,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:258,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:259,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:259,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:260,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:260,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:261,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:261,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:262,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:262,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:263,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 264
    functionName: test_lxc_safe_uint
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - INTTYPE_TO_STRLEN
    - lxc_test_assert_abort
    - exit
    - snprintf
    linkageType: ''
    returnType: void
    signature: void test_lxc_safe_uint(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/tests/lxc-test-utils.c:270,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:272,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:274,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:276,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:276,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:278,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:280,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:282,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:282,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:284,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:286,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:288,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:288,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/lxc-test-utils.c:290,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:292,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:294,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:294,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:296,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:296,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:297,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:297,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:298,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:298,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:299,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:299,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:300,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:300,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:301,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:301,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:302,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:302,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:303,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:303,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:304,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:304,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:305,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:305,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:306,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:306,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:307,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:307,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:308,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:308,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:309,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:309,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:310,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:310,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 311
    functionName: test_lxc_safe_int
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - lxc_safe_int
    - INTTYPE_TO_STRLEN
    - lxc_test_assert_abort
    - exit
    - snprintf
    linkageType: ''
    returnType: void
    signature: void test_lxc_safe_int(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:317,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:317,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:318,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:318,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:319,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:319,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:320,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:320,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:321,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:321,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:322,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:322,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:323,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:323,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:324,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:324,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:325,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:325,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:326,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:326,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:327,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:327,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:328,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:328,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:329,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:329,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:330,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:330,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:331,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 332
    functionName: test_lxc_safe_long
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - lxc_test_assert_abort
    - lxc_safe_long
    linkageType: ''
    returnType: void
    signature: void test_lxc_safe_long(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:338,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:339,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:339,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:340,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:342,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:343,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:343,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:344,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:346,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:347,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:347,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:348,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:350,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:351,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:351,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:352,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:354,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:355,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:355,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:356,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:358,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:359,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:359,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:360,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:362,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:363,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:363,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:364,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:366,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:367,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/lxc-test-utils.c:367,1
    - Dst: free
      Src: /src/lxc/src/tests/lxc-test-utils.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 369
    functionName: test_lxc_string_replace
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - strcmp
    - lxc_test_assert_abort
    - lxc_string_replace
    - free
    linkageType: ''
    returnType: void
    signature: void test_lxc_string_replace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:373,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:373,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:374,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:374,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:375,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:375,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:377,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:377,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:378,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:378,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:379,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:379,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:381,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:381,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:382,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:382,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:383,1
    - Dst: lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 384
    functionName: test_lxc_string_in_array
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - lxc_string_in_array
    - lxc_test_assert_abort
    linkageType: ''
    returnType: void
    signature: void test_lxc_string_in_array(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:391,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:393,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:394,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:398,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:399,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:402,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:404,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:405,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:409,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:410,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:413,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:415,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:416,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:419,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:421,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:422,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:426,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:427,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:430,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:432,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:433,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:437,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:438,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:441,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:443,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:444,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:448,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:449,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:452,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:454,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:455,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:458,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:460,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:461,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:465,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:466,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:469,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:471,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:472,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:476,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:477,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:480,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:482,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:483,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:487,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:488,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:491,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:493,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:494,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:497,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:499,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:500,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 502
    functionName: test_parse_byte_size_string
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - exit
    - parse_byte_size_string
    - lxc_error
    linkageType: ''
    returnType: void
    signature: void test_parse_byte_size_string(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_net_is_hwaddr
      Src: /src/lxc/src/tests/lxc-test-utils.c:506,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:507,1
    - Dst: lxc_config_net_is_hwaddr
      Src: /src/lxc/src/tests/lxc-test-utils.c:509,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:510,1
    - Dst: lxc_config_net_is_hwaddr
      Src: /src/lxc/src/tests/lxc-test-utils.c:512,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:513,1
    - Dst: lxc_config_net_is_hwaddr
      Src: /src/lxc/src/tests/lxc-test-utils.c:515,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 517
    functionName: test_lxc_config_net_is_hwaddr
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - lxc_config_net_is_hwaddr
    - exit
    linkageType: ''
    returnType: void
    signature: void test_lxc_config_net_is_hwaddr(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/lxc-test-utils.c:524,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:526,1
    - Dst: sigemptyset
      Src: /src/lxc/src/tests/lxc-test-utils.c:535,1
    - Dst: sigaddset
      Src: /src/lxc/src/tests/lxc-test-utils.c:538,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:540,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/tests/lxc-test-utils.c:543,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:545,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:546,1
    - Dst: task_blocks_signal
      Src: /src/lxc/src/tests/lxc-test-utils.c:550,1
    - Dst: getpid
      Src: /src/lxc/src/tests/lxc-test-utils.c:550,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:551,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:554,1
    - Dst: task_blocks_signal
      Src: /src/lxc/src/tests/lxc-test-utils.c:558,1
    - Dst: getpid
      Src: /src/lxc/src/tests/lxc-test-utils.c:558,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:559,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:561,1
    - Dst: task_blocks_signal
      Src: /src/lxc/src/tests/lxc-test-utils.c:564,1
    - Dst: getpid
      Src: /src/lxc/src/tests/lxc-test-utils.c:564,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc-test-utils.c:565,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:567,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:570,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc-test-utils.c:573,1
    - Dst: _exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:575,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 578
    functionName: test_task_blocks_signal
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - getpid
    - sigaddset
    - _exit
    - task_blocks_signal
    - sigemptyset
    - wait_for_pid
    - lxc_error
    - pthread_sigmask
    - fork
    linkageType: ''
    returnType: void
    signature: void test_task_blocks_signal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:583,1
    - Dst: is_in_comm
      Src: /src/lxc/src/tests/lxc-test-utils.c:583,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:584,1
    - Dst: is_in_comm
      Src: /src/lxc/src/tests/lxc-test-utils.c:584,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/lxc-test-utils.c:585,1
    - Dst: is_in_comm
      Src: /src/lxc/src/tests/lxc-test-utils.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 587
    functionName: test_is_in_comm
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - is_in_comm
    - lxc_test_assert_abort
    linkageType: ''
    returnType: void
    signature: void test_is_in_comm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_lxc_string_replace
      Src: /src/lxc/src/tests/lxc-test-utils.c:591,1
    - Dst: test_lxc_string_in_array
      Src: /src/lxc/src/tests/lxc-test-utils.c:592,1
    - Dst: test_lxc_path_simplify
      Src: /src/lxc/src/tests/lxc-test-utils.c:593,1
    - Dst: test_detect_ramfs_rootfs
      Src: /src/lxc/src/tests/lxc-test-utils.c:594,1
    - Dst: test_lxc_safe_uint
      Src: /src/lxc/src/tests/lxc-test-utils.c:595,1
    - Dst: test_lxc_safe_int
      Src: /src/lxc/src/tests/lxc-test-utils.c:596,1
    - Dst: test_lxc_safe_long
      Src: /src/lxc/src/tests/lxc-test-utils.c:597,1
    - Dst: test_parse_byte_size_string
      Src: /src/lxc/src/tests/lxc-test-utils.c:598,1
    - Dst: test_lxc_config_net_is_hwaddr
      Src: /src/lxc/src/tests/lxc-test-utils.c:599,1
    - Dst: test_task_blocks_signal
      Src: /src/lxc/src/tests/lxc-test-utils.c:600,1
    - Dst: test_is_in_comm
      Src: /src/lxc/src/tests/lxc-test-utils.c:601,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc-test-utils.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 604
    functionName: main
    functionSourceFile: /src/lxc/src/tests/lxc-test-utils.c
    functionUses: 0
    functionsReached:
    - test_lxc_path_simplify
    - test_lxc_safe_uint
    - test_lxc_safe_int
    - exit
    - test_is_in_comm
    - test_lxc_safe_long
    - test_lxc_config_net_is_hwaddr
    - test_lxc_string_in_array
    - test_parse_byte_size_string
    - test_lxc_string_replace
    - test_task_blocks_signal
    - test_detect_ramfs_rootfs
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/startone.c:26,1
    - Dst: perror
      Src: /src/lxc/src/tests/startone.c:29,1
    - Dst: execlp
      Src: /src/lxc/src/tests/startone.c:34,1
    - Dst: exit
      Src: /src/lxc/src/tests/startone.c:35,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/startone.c:39,1
    - Dst: perror
      Src: /src/lxc/src/tests/startone.c:44,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/startone.c:51,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:52,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/startone.c:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 57
    functionName: destroy_container
    functionSourceFile: /src/lxc/src/tests/startone.c
    functionUses: 2
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int destroy_container(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/startone.c:62,1
    - Dst: perror
      Src: /src/lxc/src/tests/startone.c:65,1
    - Dst: execlp
      Src: /src/lxc/src/tests/startone.c:70,1
    - Dst: exit
      Src: /src/lxc/src/tests/startone.c:71,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/startone.c:75,1
    - Dst: perror
      Src: /src/lxc/src/tests/startone.c:80,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/startone.c:87,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:88,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/startone.c:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 93
    functionName: create_container
    functionSourceFile: /src/lxc/src/tests/startone.c
    functionUses: 2
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int create_container(void)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/startone.c:107,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:109,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/startone.c:114,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:115,1
    - Dst: create_container
      Src: /src/lxc/src/tests/startone.c:119,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:121,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/startone.c:125,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:127,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/tests/startone.c:131,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:133,1
    - Dst: sprintf
      Src: /src/lxc/src/tests/startone.c:137,1
    - Dst: struct lxc_container*::set_cgroup_item
      Src: /src/lxc/src/tests/startone.c:138,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:140,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/tests/startone.c:144,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/startone.c:145,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:146,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/startone.c:150,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:152,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/startone.c:156,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:157,1
    - Dst: lxc_container_get
      Src: /src/lxc/src/tests/startone.c:161,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:162,1
    - Dst: exit
      Src: /src/lxc/src/tests/startone.c:163,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/startone.c:166,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/startone.c:167,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:168,1
    - Dst: exit
      Src: /src/lxc/src/tests/startone.c:169,1
    - Dst: sleep
      Src: /src/lxc/src/tests/startone.c:172,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/tests/startone.c:174,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/startone.c:175,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:176,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/tests/startone.c:180,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:182,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/tests/startone.c:186,1
    - Dst: strncmp
      Src: /src/lxc/src/tests/startone.c:187,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:188,1
    - Dst: sprintf
      Src: /src/lxc/src/tests/startone.c:192,1
    - Dst: struct lxc_container*::set_cgroup_item
      Src: /src/lxc/src/tests/startone.c:193,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:195,1
    - Dst: sprintf
      Src: /src/lxc/src/tests/startone.c:199,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/tests/startone.c:200,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/startone.c:201,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/startone.c:201,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:202,1
    - Dst: struct lxc_container*::set_cgroup_item
      Src: /src/lxc/src/tests/startone.c:206,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/startone.c:208,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:214,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:216,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:218,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:220,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:222,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:224,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:226,1
    - Dst: system
      Src: /src/lxc/src/tests/startone.c:228,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:230,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/startone.c:234,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:235,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/startone.c:242,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/startone.c:247,1
    - Dst: destroy_container
      Src: /src/lxc/src/tests/startone.c:248,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/startone.c:250,1
    - Dst: exit
      Src: /src/lxc/src/tests/startone.c:251,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 140
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 252
    functionName: main
    functionSourceFile: /src/lxc/src/tests/startone.c
    functionUses: 0
    functionsReached:
    - fprintf
    - system
    - exit
    - struct lxc_container*::get_cgroup_item
    - lxc_container_new
    - lxc_container_get
    - create_container
    - struct lxc_container*::want_daemonize
    - destroy_container
    - strncmp
    - struct lxc_container*::is_defined
    - sprintf
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - strcmp
    - struct lxc_container*::set_config_item
    - lxc_container_put
    - struct lxc_container*::set_cgroup_item
    - sleep
    - struct lxc_container*::state
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/saveconfig.c:24,1
    - Dst: perror
      Src: /src/lxc/src/tests/saveconfig.c:27,1
    - Dst: execlp
      Src: /src/lxc/src/tests/saveconfig.c:32,1
    - Dst: exit
      Src: /src/lxc/src/tests/saveconfig.c:33,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/saveconfig.c:37,1
    - Dst: perror
      Src: /src/lxc/src/tests/saveconfig.c:42,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/saveconfig.c:49,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:50,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/saveconfig.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 55
    functionName: create_container
    functionSourceFile: /src/lxc/src/tests/saveconfig.c
    functionUses: 3
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int create_container(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/saveconfig.c:62,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:63,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/saveconfig.c:68,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:69,1
    - Dst: create_container
      Src: /src/lxc/src/tests/saveconfig.c:73,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:74,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/saveconfig.c:78,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:79,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/saveconfig.c:83,1
    - Dst: unlink
      Src: /src/lxc/src/tests/saveconfig.c:84,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/saveconfig.c:85,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:86,1
    - Dst: rename
      Src: /src/lxc/src/tests/saveconfig.c:90,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/tests/saveconfig.c:91,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:92,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/saveconfig.c:96,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:97,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/saveconfig.c:101,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:102,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/saveconfig.c:106,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/saveconfig.c:110,1
    - Dst: exit
      Src: /src/lxc/src/tests/saveconfig.c:111,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 112
    functionName: main
    functionSourceFile: /src/lxc/src/tests/saveconfig.c
    functionUses: 0
    functionsReached:
    - fprintf
    - create_container
    - struct lxc_container*::is_defined
    - struct lxc_container*::save_config
    - exit
    - rename
    - lxc_container_new
    - lxc_container_put
    - unlink
    - struct lxc_container*::destroy
    - struct lxc_container*::load_config
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_config_items
      Src: /src/lxc/src/tests/config_jump_table.c:31,1
    - Dst: malloc
      Src: /src/lxc/src/tests/config_jump_table.c:33,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/config_jump_table.c:35,1
    - Dst: exit
      Src: /src/lxc/src/tests/config_jump_table.c:36,1
    - Dst: lxc_list_config_items
      Src: /src/lxc/src/tests/config_jump_table.c:39,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/config_jump_table.c:40,1
    - Dst: strtok_r
      Src: /src/lxc/src/tests/config_jump_table.c:44,1
    - Dst: strtok_r
      Src: /src/lxc/src/tests/config_jump_table.c:45,1
    - Dst: lxc_get_config
      Src: /src/lxc/src/tests/config_jump_table.c:48,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/config_jump_table.c:50,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/config_jump_table.c:57,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/config_jump_table.c:64,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/config_jump_table.c:71,1
    - Dst: free
      Src: /src/lxc/src/tests/config_jump_table.c:81,1
    - Dst: exit
      Src: /src/lxc/src/tests/config_jump_table.c:83,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/lxc/src/tests/config_jump_table.c
    functionUses: 0
    functionsReached:
    - free
    - strtok_r
    - exit
    - lxc_list_config_items
    - lxc_get_config
    - lxc_error
    - malloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: statvfs
      Src: /src/lxc/src/tests/sys_mixed.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: is_read_only
    functionSourceFile: /src/lxc/src/tests/sys_mixed.c
    functionUses: 0
    functionsReached:
    - statvfs
    linkageType: ''
    returnType: int
    signature: int is_read_only(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_read_only
      Src: /src/lxc/src/tests/sys_mixed.c:51,1
    - Dst: is_read_only
      Src: /src/lxc/src/tests/sys_mixed.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: sys_mixed
    functionSourceFile: /src/lxc/src/tests/sys_mixed.c
    functionUses: 0
    functionsReached:
    - is_read_only
    linkageType: ''
    returnType: int
    signature: int sys_mixed(void *payload)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/sys_mixed.c:72,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:74,1
    - Dst: exit
      Src: /src/lxc/src/tests/sys_mixed.c:75,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/sys_mixed.c:78,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:79,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/sys_mixed.c:83,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:84,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/sys_mixed.c:88,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:89,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/sys_mixed.c:93,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/sys_mixed.c:95,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:96,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/sys_mixed.c:100,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:101,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/sys_mixed.c:105,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:106,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/sys_mixed.c:110,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:111,1
    - Dst: sleep
      Src: /src/lxc/src/tests/sys_mixed.c:116,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/sys_mixed.c:118,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:120,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/sys_mixed.c:124,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:126,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/sys_mixed.c:133,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/sys_mixed.c:133,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:134,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/sys_mixed.c:136,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/sys_mixed.c:137,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/sys_mixed.c:140,1
    - Dst: exit
      Src: /src/lxc/src/tests/sys_mixed.c:141,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 142
    functionName: main
    functionSourceFile: /src/lxc/src/tests/sys_mixed.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_defined
    - exit
    - struct lxc_container*::attach
    - struct lxc_container*::is_running
    - lxc_container_new
    - struct lxc_container*::createl
    - lxc_container_put
    - wait_for_pid
    - lxc_error
    - struct lxc_container*::destroy
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - sleep
    - struct lxc_container*::want_daemonize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/lxc/src/tests/locktests.c:29,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:30,1
    - Dst: fork
      Src: /src/lxc/src/tests/locktests.c:32,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:33,1
    - Dst: read
      Src: /src/lxc/src/tests/locktests.c:36,1
    - Dst: perror
      Src: /src/lxc/src/tests/locktests.c:37,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:38,1
    - Dst: lxc_newlock
      Src: /src/lxc/src/tests/locktests.c:41,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:43,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:44,1
    - Dst: lxclock
      Src: /src/lxc/src/tests/locktests.c:47,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:48,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:49,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:52,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:53,1
    - Dst: lxc_newlock
      Src: /src/lxc/src/tests/locktests.c:56,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:58,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:59,1
    - Dst: lxclock
      Src: /src/lxc/src/tests/locktests.c:62,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:63,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:64,1
    - Dst: write
      Src: /src/lxc/src/tests/locktests.c:67,1
    - Dst: perror
      Src: /src/lxc/src/tests/locktests.c:68,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:69,1
    - Dst: sleep
      Src: /src/lxc/src/tests/locktests.c:72,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/locktests.c:74,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/locktests.c:76,1
    - Dst: printf
      Src: /src/lxc/src/tests/locktests.c:77,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/locktests.c:78,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/locktests.c:79,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:80,1
    - Dst: printf
      Src: /src/lxc/src/tests/locktests.c:82,1
    - Dst: perror
      Src: /src/lxc/src/tests/locktests.c:85,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:86,1
    - Dst: kill
      Src: /src/lxc/src/tests/locktests.c:89,1
    - Dst: wait
      Src: /src/lxc/src/tests/locktests.c:90,1
    - Dst: close
      Src: /src/lxc/src/tests/locktests.c:91,1
    - Dst: close
      Src: /src/lxc/src/tests/locktests.c:92,1
    - Dst: lxcunlock
      Src: /src/lxc/src/tests/locktests.c:93,1
    - Dst: lxc_putlock
      Src: /src/lxc/src/tests/locktests.c:94,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 95
    functionName: test_two_locks
    functionSourceFile: /src/lxc/src/tests/locktests.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - close
    - fprintf
    - wait
    - exit
    - perror
    - lxclock
    - lxc_putlock
    - waitpid
    - pipe
    - lxc_newlock
    - kill
    - WEXITSTATUS
    - write
    - read
    - printf
    - fork
    - lxcunlock
    - sleep
    linkageType: ''
    returnType: void
    signature: void test_two_locks(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_newlock
      Src: /src/lxc/src/tests/locktests.c:102,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:104,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:105,1
    - Dst: lxclock
      Src: /src/lxc/src/tests/locktests.c:108,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:110,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:111,1
    - Dst: lxcunlock
      Src: /src/lxc/src/tests/locktests.c:114,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:116,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:117,1
    - Dst: lxc_putlock
      Src: /src/lxc/src/tests/locktests.c:119,1
    - Dst: lxc_newlock
      Src: /src/lxc/src/tests/locktests.c:121,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:123,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:124,1
    - Dst: stat
      Src: /src/lxc/src/tests/locktests.c:130,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:132,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:134,1
    - Dst: lxc_putlock
      Src: /src/lxc/src/tests/locktests.c:136,1
    - Dst: test_two_locks
      Src: /src/lxc/src/tests/locktests.c:138,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/locktests.c:140,1
    - Dst: exit
      Src: /src/lxc/src/tests/locktests.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 143
    functionName: main
    functionSourceFile: /src/lxc/src/tests/locktests.c
    functionUses: 0
    functionsReached:
    - stat
    - fprintf
    - lxc_newlock
    - exit
    - lxclock
    - test_two_locks
    - lxc_putlock
    - lxcunlock
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/containertests.c:26,1
    - Dst: perror
      Src: /src/lxc/src/tests/containertests.c:29,1
    - Dst: execlp
      Src: /src/lxc/src/tests/containertests.c:34,1
    - Dst: exit
      Src: /src/lxc/src/tests/containertests.c:35,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/containertests.c:39,1
    - Dst: perror
      Src: /src/lxc/src/tests/containertests.c:43,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/containertests.c:50,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:51,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/containertests.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 56
    functionName: destroy_busybox
    functionSourceFile: /src/lxc/src/tests/containertests.c
    functionUses: 0
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int destroy_busybox(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/containertests.c:61,1
    - Dst: perror
      Src: /src/lxc/src/tests/containertests.c:64,1
    - Dst: execlp
      Src: /src/lxc/src/tests/containertests.c:69,1
    - Dst: exit
      Src: /src/lxc/src/tests/containertests.c:70,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/containertests.c:74,1
    - Dst: perror
      Src: /src/lxc/src/tests/containertests.c:78,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/containertests.c:85,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:86,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/containertests.c:90,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 91
    functionName: create_busybox
    functionSourceFile: /src/lxc/src/tests/containertests.c
    functionUses: 0
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int create_busybox(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/containertests.c:104,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:106,1
    - Dst: lxc_container_get
      Src: /src/lxc/src/tests/containertests.c:110,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:111,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:117,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/containertests.c:121,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:122,1
    - Dst: struct lxc_container*::config_file_name
      Src: /src/lxc/src/tests/containertests.c:126,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/containertests.c:128,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:129,1
    - Dst: free
      Src: /src/lxc/src/tests/containertests.c:132,1
    - Dst: free
      Src: /src/lxc/src/tests/containertests.c:133,1
    - Dst: struct lxc_container*::config_file_name
      Src: /src/lxc/src/tests/containertests.c:136,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:138,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/containertests.c:142,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:144,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:149,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:155,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/containertests.c:159,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:160,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/containertests.c:165,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:167,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/containertests.c:172,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:174,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/tests/containertests.c:178,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/containertests.c:179,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:183,1
    - Dst: create_busybox
      Src: /src/lxc/src/tests/containertests.c:191,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:193,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/containertests.c:197,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:199,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/tests/containertests.c:203,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/containertests.c:204,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:205,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/containertests.c:209,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:211,1
    - Dst: lxc_get_wait_states
      Src: /src/lxc/src/tests/containertests.c:216,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:218,1
    - Dst: malloc
      Src: /src/lxc/src/tests/containertests.c:222,1
    - Dst: lxc_get_wait_states
      Src: /src/lxc/src/tests/containertests.c:223,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:227,1
    - Dst: free
      Src: /src/lxc/src/tests/containertests.c:229,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/containertests.c:232,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/containertests.c:233,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:234,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/containertests.c:238,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:239,1
    - Dst: sleep
      Src: /src/lxc/src/tests/containertests.c:243,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/tests/containertests.c:244,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/containertests.c:245,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:246,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/containertests.c:250,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/containertests.c:255,1
    - Dst: destroy_busybox
      Src: /src/lxc/src/tests/containertests.c:256,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/containertests.c:257,1
    - Dst: exit
      Src: /src/lxc/src/tests/containertests.c:260,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 142
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 261
    functionName: main
    functionSourceFile: /src/lxc/src/tests/containertests.c
    functionUses: 0
    functionsReached:
    - destroy_busybox
    - fprintf
    - exit
    - struct lxc_container*::state
    - lxc_container_new
    - create_busybox
    - lxc_container_get
    - lxc_get_wait_states
    - free
    - struct lxc_container*::want_daemonize
    - struct lxc_container*::is_defined
    - struct lxc_container*::config_file_name
    - struct lxc_container*::wait
    - struct lxc_container*::startl
    - struct lxc_container*::load_config
    - struct lxc_container*::stop
    - strcmp
    - lxc_container_put
    - sleep
    - malloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/lxc/src/tests/concurrent.c:67,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/concurrent.c:71,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:73,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/concurrent.c:78,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/concurrent.c:80,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/concurrent.c:81,1
    - Dst: struct lxc_container*::create
      Src: /src/lxc/src/tests/concurrent.c:82,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:83,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/concurrent.c:87,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/concurrent.c:88,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/concurrent.c:88,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/concurrent.c:89,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/tests/concurrent.c:91,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:92,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/concurrent.c:96,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:97,1
    - Dst: sleep
      Src: /src/lxc/src/tests/concurrent.c:101,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/concurrent.c:103,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/concurrent.c:104,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/concurrent.c:104,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/concurrent.c:105,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:106,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/tests/concurrent.c:110,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:111,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/concurrent.c:115,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/concurrent.c:116,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/tests/concurrent.c:116,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/concurrent.c:117,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:118,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/concurrent.c:127,1
    - Dst: lxc_log_close
      Src: /src/lxc/src/tests/concurrent.c:130,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 1
    argNames:
    - arguments
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 131
    functionName: do_function
    functionSourceFile: /src/lxc/src/tests/concurrent.c
    functionUses: 0
    functionsReached:
    - strcmp
    - struct lxc_container*::create
    - fprintf
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_defined
    - struct lxc_container*::is_running
    - lxc_container_new
    - lxc_container_put
    - sprintf
    - struct lxc_container*::stop
    - struct lxc_container*::destroy
    - struct lxc_container*::wait
    - struct lxc_container*::start
    - sleep
    - lxc_log_close
    - struct lxc_container*::want_daemonize
    linkageType: ''
    returnType: void
    signature: void do_function(void *arguments)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_function
      Src: /src/lxc/src/tests/concurrent.c:135,1
    - Dst: pthread_exit
      Src: /src/lxc/src/tests/concurrent.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arguments
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: concurrent
    functionSourceFile: /src/lxc/src/tests/concurrent.c
    functionUses: 0
    functionsReached:
    - pthread_exit
    - do_function
    linkageType: ''
    returnType: void
    signature: void *concurrent(void *arguments)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: pthread_attr_init
      Src: /src/lxc/src/tests/concurrent.c:150,1
    - Dst: getopt_long
      Src: /src/lxc/src/tests/concurrent.c:152,1
    - Dst: atoi
      Src: /src/lxc/src/tests/concurrent.c:155,1
    - Dst: atoi
      Src: /src/lxc/src/tests/concurrent.c:158,1
    - Dst: atoi
      Src: /src/lxc/src/tests/concurrent.c:164,1
    - Dst: strtok_r
      Src: /src/lxc/src/tests/concurrent.c:180,1
    - Dst: realloc
      Src: /src/lxc/src/tests/concurrent.c:182,1
    - Dst: perror
      Src: /src/lxc/src/tests/concurrent.c:184,1
    - Dst: exit
      Src: /src/lxc/src/tests/concurrent.c:185,1
    - Dst: usage
      Src: /src/lxc/src/tests/concurrent.c:195,1
    - Dst: exit
      Src: /src/lxc/src/tests/concurrent.c:196,1
    - Dst: malloc
      Src: /src/lxc/src/tests/concurrent.c:200,1
    - Dst: malloc
      Src: /src/lxc/src/tests/concurrent.c:201,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:203,1
    - Dst: exit
      Src: /src/lxc/src/tests/concurrent.c:204,1
    - Dst: open
      Src: /src/lxc/src/tests/concurrent.c:210,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:212,1
    - Dst: printf
      Src: /src/lxc/src/tests/concurrent.c:217,1
    - Dst: close
      Src: /src/lxc/src/tests/concurrent.c:219,1
    - Dst: printf
      Src: /src/lxc/src/tests/concurrent.c:223,1
    - Dst: pthread_create
      Src: /src/lxc/src/tests/concurrent.c:230,1
    - Dst: perror
      Src: /src/lxc/src/tests/concurrent.c:231,1
    - Dst: exit
      Src: /src/lxc/src/tests/concurrent.c:232,1
    - Dst: do_function
      Src: /src/lxc/src/tests/concurrent.c:235,1
    - Dst: pthread_join
      Src: /src/lxc/src/tests/concurrent.c:241,1
    - Dst: perror
      Src: /src/lxc/src/tests/concurrent.c:242,1
    - Dst: exit
      Src: /src/lxc/src/tests/concurrent.c:243,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/concurrent.c:248,1
    - Dst: exit
      Src: /src/lxc/src/tests/concurrent.c:249,1
    - Dst: free
      Src: /src/lxc/src/tests/concurrent.c:255,1
    - Dst: free
      Src: /src/lxc/src/tests/concurrent.c:256,1
    - Dst: pthread_attr_destroy
      Src: /src/lxc/src/tests/concurrent.c:257,1
    - Dst: exit
      Src: /src/lxc/src/tests/concurrent.c:258,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 259
    functionName: main
    functionSourceFile: /src/lxc/src/tests/concurrent.c
    functionUses: 0
    functionsReached:
    - usage
    - printf
    - pthread_create
    - pthread_join
    - pthread_attr_destroy
    - close
    - fprintf
    - free
    - strtok_r
    - getopt_long
    - exit
    - atoi
    - do_function
    - realloc
    - pthread_attr_init
    - perror
    - open
    - malloc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:36,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:38,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:40,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:43,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:45,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:47,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:50,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:52,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:54,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:57,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:59,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:61,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:64,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:66,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:68,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:71,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:73,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:74,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:78,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:79,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:82,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:84,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:85,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:88,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:90,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:91,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:95,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:96,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:99,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:101,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:102,1
    - Dst: cgns_supported
      Src: /src/lxc/src/tests/lxc_raw_clone.c:106,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:115,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:117,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:121,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:125,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:126,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:129,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:131,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:132,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:135,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:137,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:141,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:146,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:147,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:150,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:152,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:153,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:156,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:158,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:159,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:163,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:164,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:167,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:169,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:170,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:173,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:175,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:176,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:180,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:181,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:184,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:186,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:187,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:190,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:192,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:193,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:197,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:198,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:201,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:203,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:204,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/tests/lxc_raw_clone.c:207,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:209,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:210,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:214,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:215,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/lxc_raw_clone.c:218,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/lxc_raw_clone.c:220,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:221,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/lxc_raw_clone.c:224,1
    - Dst: exit
      Src: /src/lxc/src/tests/lxc_raw_clone.c:225,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 149
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 226
    functionName: main
    functionSourceFile: /src/lxc/src/tests/lxc_raw_clone.c
    functionUses: 0
    functionsReached:
    - lxc_debug
    - lxc_raw_clone
    - exit
    - wait_for_pid
    - lxc_error
    - cgns_supported
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/tests/mount_injection.c:49,1
    - Dst: strchr
      Src: /src/lxc/src/tests/mount_injection.c:52,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/mount_injection.c:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - line
    - str
    - nfields
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: comp_field
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strchr
    linkageType: ''
    returnType: int
    signature: int comp_field(char *line, const char *str, int nfields)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:67,1
    - Dst: fopen
      Src: /src/lxc/src/tests/mount_injection.c:69,1
    - Dst: fgets
      Src: /src/lxc/src/tests/mount_injection.c:73,1
    - Dst: comp_field
      Src: /src/lxc/src/tests/mount_injection.c:81,1
    - Dst: comp_field
      Src: /src/lxc/src/tests/mount_injection.c:84,1
    - Dst: strchr
      Src: /src/lxc/src/tests/mount_injection.c:90,1
    - Dst: comp_field
      Src: /src/lxc/src/tests/mount_injection.c:91,1
    - Dst: comp_field
      Src: /src/lxc/src/tests/mount_injection.c:92,1
    - Dst: fclose
      Src: /src/lxc/src/tests/mount_injection.c:96,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:97,1
    - Dst: _exit
      Src: /src/lxc/src/tests/mount_injection.c:99,1
    - Dst: _exit
      Src: /src/lxc/src/tests/mount_injection.c:101,1
    - Dst: fclose
      Src: /src/lxc/src/tests/mount_injection.c:104,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:105,1
    - Dst: _exit
      Src: /src/lxc/src/tests/mount_injection.c:107,1
    - Dst: _exit
      Src: /src/lxc/src/tests/mount_injection.c:109,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 110
    functionName: find_in_proc_mounts
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - comp_field
    - fclose
    - fprintf
    - strchr
    - _exit
    - fgets
    - fopen
    linkageType: ''
    returnType: int
    signature: int find_in_proc_mounts(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/tests/mount_injection.c:118,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:120,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/tests/mount_injection.c:124,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - d
    argTypes:
    - struct lxc_container*
    - struct mountinfo_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: check_containers_mountinfo
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::attach
    - wait_for_pid
    - fprintf
    linkageType: ''
    returnType: int
    signature: int check_containers_mountinfo(struct lxc_container *c, struct mountinfo_data
      *d)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/tests/mount_injection.c:143,1
    - Dst: strlen
      Src: /src/lxc/src/tests/mount_injection.c:144,1
    - Dst: strlen
      Src: /src/lxc/src/tests/mount_injection.c:145,1
    - Dst: strcpy
      Src: /src/lxc/src/tests/mount_injection.c:170,1
    - Dst: mkdtemp
      Src: /src/lxc/src/tests/mount_injection.c:171,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/mount_injection.c:173,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:174,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/mount_injection.c:177,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:179,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:180,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/mount_injection.c:184,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:186,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:187,1
    - Dst: snprintf
      Src: /src/lxc/src/tests/mount_injection.c:191,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:193,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:194,1
    - Dst: strcpy
      Src: /src/lxc/src/tests/mount_injection.c:199,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/tests/mount_injection.c:200,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/mount_injection.c:202,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:203,1
    - Dst: lxc_debug
      Src: /src/lxc/src/tests/mount_injection.c:205,1
    - Dst: close
      Src: /src/lxc/src/tests/mount_injection.c:206,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/mount_injection.c:215,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:216,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/mount_injection.c:219,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:221,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/mount_injection.c:225,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:226,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/mount_injection.c:231,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:232,1
    - Dst: struct lxc_container*::create
      Src: /src/lxc/src/tests/mount_injection.c:237,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:238,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/mount_injection.c:242,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/tests/mount_injection.c:244,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:245,1
    - Dst: struct lxc_container*::mount
      Src: /src/lxc/src/tests/mount_injection.c:252,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:254,1
    - Dst: check_containers_mountinfo
      Src: /src/lxc/src/tests/mount_injection.c:258,1
    - Dst: struct lxc_container*::umount
      Src: /src/lxc/src/tests/mount_injection.c:264,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:266,1
    - Dst: check_containers_mountinfo
      Src: /src/lxc/src/tests/mount_injection.c:272,1
    - Dst: struct lxc_container*::mount
      Src: /src/lxc/src/tests/mount_injection.c:277,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:279,1
    - Dst: check_containers_mountinfo
      Src: /src/lxc/src/tests/mount_injection.c:283,1
    - Dst: struct lxc_container*::umount
      Src: /src/lxc/src/tests/mount_injection.c:289,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:291,1
    - Dst: check_containers_mountinfo
      Src: /src/lxc/src/tests/mount_injection.c:297,1
    - Dst: struct lxc_container*::mount
      Src: /src/lxc/src/tests/mount_injection.c:302,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:304,1
    - Dst: check_containers_mountinfo
      Src: /src/lxc/src/tests/mount_injection.c:308,1
    - Dst: struct lxc_container*::umount
      Src: /src/lxc/src/tests/mount_injection.c:314,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:316,1
    - Dst: check_containers_mountinfo
      Src: /src/lxc/src/tests/mount_injection.c:322,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/mount_injection.c:327,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:328,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/mount_injection.c:332,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:333,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/mount_injection.c:339,1
    - Dst: open
      Src: /src/lxc/src/tests/mount_injection.c:344,1
    - Dst: read
      Src: /src/lxc/src/tests/mount_injection.c:348,1
    - Dst: write
      Src: /src/lxc/src/tests/mount_injection.c:349,1
    - Dst: close
      Src: /src/lxc/src/tests/mount_injection.c:353,1
    - Dst: unlink
      Src: /src/lxc/src/tests/mount_injection.c:357,1
    - Dst: unlink
      Src: /src/lxc/src/tests/mount_injection.c:358,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 166
    argCount: 2
    argNames:
    - name
    - config_items
    argTypes:
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 361
    functionName: perform_container_test
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - close
    - fprintf
    - exit
    - lxc_container_new
    - lxc_log_init
    - strcpy
    - check_containers_mountinfo
    - strlen
    - snprintf
    - struct lxc_container*::mount
    - mkdtemp
    - struct lxc_container*::destroy
    - open
    - struct lxc_container*::want_daemonize
    - struct lxc_container*::create
    - lxc_debug
    - lxc_make_tmpfile
    - struct lxc_container*::is_defined
    - unlink
    - lxc_error
    - read
    - struct lxc_container*::start
    - struct lxc_container*::stop
    - write
    - struct lxc_container*::set_config_item
    - lxc_container_put
    - struct lxc_container*::umount
    linkageType: ''
    returnType: int
    signature: int perform_container_test(const char *name, const char *config_items[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perform_container_test
      Src: /src/lxc/src/tests/mount_injection.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: do_priv_container_test
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - perform_container_test
    linkageType: ''
    returnType: int
    signature: int do_priv_container_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perform_container_test
      Src: /src/lxc/src/tests/mount_injection.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: do_unpriv_container_test
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - perform_container_test
    linkageType: ''
    returnType: int
    signature: int do_unpriv_container_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/tests/mount_injection.c:382,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:384,1
    - Dst: mount
      Src: /src/lxc/src/tests/mount_injection.c:389,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:391,1
    - Dst: mount
      Src: /src/lxc/src/tests/mount_injection.c:395,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - shmount_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 402
    functionName: lxc_setup_shmount
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - mount
    - lxc_mkdir_p
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool lxc_setup_shmount(const char *shmount_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umount2
      Src: /src/lxc/src/tests/mount_injection.c:406,1
    - Dst: lxc_rm_rf
      Src: /src/lxc/src/tests/mount_injection.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shmount_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: lxc_teardown_shmount
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - lxc_rm_rf
    - umount2
    linkageType: ''
    returnType: void
    signature: void lxc_teardown_shmount(char *shmount_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_setup_shmount
      Src: /src/lxc/src/tests/mount_injection.c:412,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:413,1
    - Dst: do_priv_container_test
      Src: /src/lxc/src/tests/mount_injection.c:415,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:416,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:417,1
    - Dst: do_unpriv_container_test
      Src: /src/lxc/src/tests/mount_injection.c:420,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/mount_injection.c:421,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:422,1
    - Dst: lxc_teardown_shmount
      Src: /src/lxc/src/tests/mount_injection.c:425,1
    - Dst: exit
      Src: /src/lxc/src/tests/mount_injection.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 428
    functionName: main
    functionSourceFile: /src/lxc/src/tests/mount_injection.c
    functionUses: 0
    functionsReached:
    - lxc_setup_shmount
    - lxc_teardown_shmount
    - fprintf
    - exit
    - do_priv_container_test
    - do_unpriv_container_test
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/tests/destroytest.c:24,1
    - Dst: perror
      Src: /src/lxc/src/tests/destroytest.c:27,1
    - Dst: execlp
      Src: /src/lxc/src/tests/destroytest.c:32,1
    - Dst: exit
      Src: /src/lxc/src/tests/destroytest.c:33,1
    - Dst: waitpid
      Src: /src/lxc/src/tests/destroytest.c:37,1
    - Dst: perror
      Src: /src/lxc/src/tests/destroytest.c:42,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/tests/destroytest.c:49,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:50,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/tests/destroytest.c:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 55
    functionName: create_container
    functionSourceFile: /src/lxc/src/tests/destroytest.c
    functionUses: 4
    functionsReached:
    - waitpid
    - WIFEXITED
    - fprintf
    - exit
    - WEXITSTATUS
    - execlp
    - perror
    - fork
    linkageType: ''
    returnType: int
    signature: int create_container(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/destroytest.c:62,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:63,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/destroytest.c:68,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:69,1
    - Dst: create_container
      Src: /src/lxc/src/tests/destroytest.c:73,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:74,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/destroytest.c:78,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:79,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/destroytest.c:83,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:84,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/destroytest.c:88,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:89,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/destroytest.c:93,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/destroytest.c:97,1
    - Dst: exit
      Src: /src/lxc/src/tests/destroytest.c:98,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 99
    functionName: main
    functionSourceFile: /src/lxc/src/tests/destroytest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - create_container
    - struct lxc_container*::is_defined
    - exit
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/getkeys.c:29,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:30,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/getkeys.c:35,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:37,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:39,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:44,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:46,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:50,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:52,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:54,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:58,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:60,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:62,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:66,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:68,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:70,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:74,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:76,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:78,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:82,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:84,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:86,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:90,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:92,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:94,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:98,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:100,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:102,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:106,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:108,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:110,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:114,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:116,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:118,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:122,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:124,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:126,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:130,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:132,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:134,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:138,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:140,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:142,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:146,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:148,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:150,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:154,1
    - Dst: struct lxc_container*::get_keys
      Src: /src/lxc/src/tests/getkeys.c:156,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/getkeys.c:158,1
    - Dst: printf
      Src: /src/lxc/src/tests/getkeys.c:162,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/getkeys.c:167,1
    - Dst: exit
      Src: /src/lxc/src/tests/getkeys.c:168,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 140
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 169
    functionName: main
    functionSourceFile: /src/lxc/src/tests/getkeys.c
    functionUses: 0
    functionsReached:
    - printf
    - fprintf
    - struct lxc_container*::set_config_item
    - struct lxc_container*::get_keys
    - exit
    - lxc_container_new
    - lxc_container_put
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:25,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:26,1
    - Dst: malloc
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:28,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:29,1
    - Dst: memcpy
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:30,1
    - Dst: lxc_list_init
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:33,1
    - Dst: lxc_config_define_add
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:35,1
    - Dst: lxc_config_define_load
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:38,1
    - Dst: open_devnull
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:41,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:42,1
    - Dst: lxc_list_for_each
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:44,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:49,1
    - Dst: malloc
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:53,1
    - Dst: lxc_test_assert_abort
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:54,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:56,1
    - Dst: dprintf
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:60,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:64,1
    - Dst: lxc_config_define_free
      Src: /src/lxc/src/tests/fuzz-lxc-define-load.c:65,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 68
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/lxc/src/tests/fuzz-lxc-define-load.c
    functionUses: 0
    functionsReached:
    - lxc_list_for_each
    - memcpy
    - struct lxc_container*::get_config_item
    - lxc_test_assert_abort
    - lxc_config_define_load
    - lxc_container_new
    - lxc_list_init
    - dprintf
    - lxc_container_put
    - lxc_config_define_free
    - open_devnull
    - lxc_config_define_add
    - malloc
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: TSTERR
    functionSourceFile: /src/lxc/src/tests/cgpath.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TSTERR(fmt, ...)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/tests/cgpath.c:53,1
    - Dst: lxc_error
      Src: /src/lxc/src/tests/cgpath.c:59,1
    - Dst: exit
      Src: /src/lxc/src/tests/cgpath.c:60,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/tests/cgpath.c:68,1
    - Dst: sprintf
      Src: /src/lxc/src/tests/cgpath.c:71,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/cgpath.c:73,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:74,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/cgpath.c:77,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:78,1
    - Dst: lxc_cmd_get_cgroup_path
      Src: /src/lxc/src/tests/cgpath.c:82,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:84,1
    - Dst: strstr
      Src: /src/lxc/src/tests/cgpath.c:87,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:88,1
    - Dst: cgroup_init
      Src: /src/lxc/src/tests/cgpath.c:92,1
    - Dst: struct cgroup_ops*::get
      Src: /src/lxc/src/tests/cgpath.c:97,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:100,1
    - Dst: strlcpy
      Src: /src/lxc/src/tests/cgpath.c:103,1
    - Dst: struct cgroup_ops*::set
      Src: /src/lxc/src/tests/cgpath.c:105,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:108,1
    - Dst: struct cgroup_ops*::get
      Src: /src/lxc/src/tests/cgpath.c:111,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:114,1
    - Dst: strcmp
      Src: /src/lxc/src/tests/cgpath.c:117,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:118,1
    - Dst: struct cgroup_ops*::set
      Src: /src/lxc/src/tests/cgpath.c:123,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:126,1
    - Dst: free
      Src: /src/lxc/src/tests/cgpath.c:133,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/cgpath.c:135,1
    - Dst: read
      Src: /src/lxc/src/tests/cgpath.c:141,1
    - Dst: write
      Src: /src/lxc/src/tests/cgpath.c:142,1
    - Dst: unlink
      Src: /src/lxc/src/tests/cgpath.c:147,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 91
    argCount: 2
    argNames:
    - lxcpath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 149
    functionName: test_running_container
    functionSourceFile: /src/lxc/src/tests/cgpath.c
    functionUses: 0
    functionsReached:
    - exit
    - lxc_container_new
    - struct cgroup_ops*::get
    - lxc_log_init
    - free
    - strstr
    - struct lxc_container*::is_defined
    - sprintf
    - unlink
    - lxc_error
    - write
    - read
    - strcmp
    - strlcpy
    - lxc_cmd_get_cgroup_path
    - lxc_container_put
    - TSTERR
    - cgroup_init
    - call_cleaner
    - struct cgroup_ops*::set
    linkageType: ''
    returnType: int
    signature: int test_running_container(const char *lxcpath, const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/lxc/src/tests/cgpath.c:158,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:160,1
    - Dst: strerror
      Src: /src/lxc/src/tests/cgpath.c:160,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/cgpath.c:166,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:167,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/cgpath.c:170,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/cgpath.c:171,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/cgpath.c:172,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/cgpath.c:173,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/cgpath.c:174,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/cgpath.c:176,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/cgpath.c:177,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:178,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/cgpath.c:181,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/cgpath.c:182,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/cgpath.c:183,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:184,1
    - Dst: test_running_container
      Src: /src/lxc/src/tests/cgpath.c:188,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/cgpath.c:190,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/cgpath.c:192,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/cgpath.c:194,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - lxcpath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 197
    functionName: test_container
    functionSourceFile: /src/lxc/src/tests/cgpath.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::set_config_item
    - test_running_container
    - struct lxc_container*::is_defined
    - strerror
    - struct lxc_container*::destroy
    - lxc_container_new
    - lxc_container_put
    - struct lxc_container*::createl
    - struct lxc_container*::want_daemonize
    - TSTERR
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - mkdir
    linkageType: ''
    returnType: int
    signature: "int test_container(const char *lxcpath, const char *name,\n\t\t\t
      \ const char *template)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/tests/cgpath.c:205,1
    - Dst: TSTERR
      Src: /src/lxc/src/tests/cgpath.c:206,1
    - Dst: exit
      Src: /src/lxc/src/tests/cgpath.c:207,1
    - Dst: test_running_container
      Src: /src/lxc/src/tests/cgpath.c:218,1
    - Dst: printf
      Src: /src/lxc/src/tests/cgpath.c:220,1
    - Dst: test_container
      Src: /src/lxc/src/tests/cgpath.c:224,1
    - Dst: printf
      Src: /src/lxc/src/tests/cgpath.c:226,1
    - Dst: test_container
      Src: /src/lxc/src/tests/cgpath.c:228,1
    - Dst: printf
      Src: /src/lxc/src/tests/cgpath.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 237
    functionName: main
    functionSourceFile: /src/lxc/src/tests/cgpath.c
    functionUses: 0
    functionsReached:
    - printf
    - test_running_container
    - exit
    - geteuid
    - TSTERR
    - test_container
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/tests/shutdowntest.c:26,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:27,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/shutdowntest.c:32,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:33,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/shutdowntest.c:37,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:38,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/shutdowntest.c:42,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/tests/shutdowntest.c:43,1
    - Dst: struct lxc_container*::createl
      Src: /src/lxc/src/tests/shutdowntest.c:45,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:46,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/shutdowntest.c:50,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:51,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/tests/shutdowntest.c:55,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/tests/shutdowntest.c:56,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/tests/shutdowntest.c:57,1
    - Dst: struct lxc_container*::startl
      Src: /src/lxc/src/tests/shutdowntest.c:59,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:60,1
    - Dst: sleep
      Src: /src/lxc/src/tests/shutdowntest.c:65,1
    - Dst: struct lxc_container*::shutdown
      Src: /src/lxc/src/tests/shutdowntest.c:67,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:68,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/tests/shutdowntest.c:69,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:70,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/shutdowntest.c:75,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:76,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/shutdowntest.c:80,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:81,1
    - Dst: fprintf
      Src: /src/lxc/src/tests/shutdowntest.c:85,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/tests/shutdowntest.c:89,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/tests/shutdowntest.c:90,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/tests/shutdowntest.c:92,1
    - Dst: exit
      Src: /src/lxc/src/tests/shutdowntest.c:93,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 94
    functionName: main
    functionSourceFile: /src/lxc/src/tests/shutdowntest.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - fprintf
    - struct lxc_container*::set_config_item
    - struct lxc_container*::is_defined
    - struct lxc_container*::shutdown
    - exit
    - lxc_container_new
    - struct lxc_container*::createl
    - lxc_container_put
    - struct lxc_container*::destroy
    - struct lxc_container*::load_config
    - struct lxc_container*::startl
    - struct lxc_container*::stop
    - sleep
    - struct lxc_container*::want_daemonize
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile_utils.c:42,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:44,1
    - Dst: strspn
      Src: /src/lxc/src/lxc/confile_utils.c:51,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:53,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:57,1
    - Dst: strspn
      Src: /src/lxc/src/lxc/confile_utils.c:67,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:70,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/confile_utils.c:75,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:78,1
    - Dst: lxc_safe_ulong
      Src: /src/lxc/src/lxc/confile_utils.c:83,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:85,1
    - Dst: strspn
      Src: /src/lxc/src/lxc/confile_utils.c:90,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:95,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/confile_utils.c:100,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:103,1
    - Dst: lxc_safe_ulong
      Src: /src/lxc/src/lxc/confile_utils.c:108,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:110,1
    - Dst: strspn
      Src: /src/lxc/src/lxc/confile_utils.c:115,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:120,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/confile_utils.c:125,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:128,1
    - Dst: strspn
      Src: /src/lxc/src/lxc/confile_utils.c:133,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:134,1
    - Dst: lxc_safe_ulong
      Src: /src/lxc/src/lxc/confile_utils.c:140,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:142,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 5
    argNames:
    - idmap
    - type
    - nsid
    - hostid
    - range
    argTypes:
    - char*
    - char*
    - unsigned long*
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 151
    functionName: parse_idmaps
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 1
    functionsReached:
    - ret_errno
    - strspn
    - strcspn
    - lxc_safe_ulong
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int parse_idmaps(const char *idmap, char *type, unsigned long *nsid,\n\t\t
      unsigned long *hostid, unsigned long *range)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile_utils.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: lxc_config_value_empty
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool lxc_config_value_empty(const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile_utils.c:166,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/confile_utils.c:168,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/confile_utils.c:170,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/confile_utils.c:171,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile_utils.c:177,1
    - Dst: list_add
      Src: /src/lxc/src/lxc/confile_utils.c:179,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile_utils.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - head
    - idx
    - tail
    argTypes:
    - struct list_head*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 182
    functionName: lxc_network_add
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_add
    - ret_set_errno
    - move_ptr
    - list_add_tail
    - zalloc
    linkageType: ''
    returnType: struct lxc_netdev
    signature: struct lxc_netdev *lxc_network_add(struct list_head *head, int idx,
      bool tail)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/confile_utils.c:195,1
    - Dst: lxc_network_add
      Src: /src/lxc/src/lxc/confile_utils.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - conf
    - idx
    - allocate
    argTypes:
    - struct lxc_conf*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 212
    functionName: lxc_get_netdev_by_idx
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - lxc_network_add
    - list_empty
    linkageType: ''
    returnType: struct lxc_netdev
    signature: "struct lxc_netdev *lxc_get_netdev_by_idx(struct lxc_conf *conf,\n\t\t\t\t\t
      unsigned int idx, bool allocate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(netdev, netdevs, head)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/confile_utils.c:219,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/confile_utils.c:222,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:223,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:233,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:234,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:238,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:239,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:242,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:246,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:250,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:254,1
    - Dst: lxc_list_for_each_safe
      Src: /src/lxc/src/lxc/confile_utils.c:256,1
    - Dst: PTR_TO_USHORT
      Src: /src/lxc/src/lxc/confile_utils.c:257,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:258,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:263,1
    - Dst: lxc_macvlan_flag_to_mode
      Src: /src/lxc/src/lxc/confile_utils.c:268,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:270,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:275,1
    - Dst: lxc_ipvlan_flag_to_mode
      Src: /src/lxc/src/lxc/confile_utils.c:278,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:279,1
    - Dst: lxc_ipvlan_flag_to_isolation
      Src: /src/lxc/src/lxc/confile_utils.c:282,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:283,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:286,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:287,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:290,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:293,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:297,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:300,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile_utils.c:303,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:308,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:312,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:316,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:319,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:322,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:325,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:328,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:331,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:333,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:336,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:340,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:342,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:345,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:346,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:348,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:351,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:354,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:358,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:360,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:363,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:364,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:366,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:370,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:371,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile_utils.c:372,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:376,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:379,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:380,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile_utils.c:381,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:385,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 112
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 390
    functionName: lxc_log_configured_netdevs
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - lxc_ipvlan_flag_to_isolation
    - PTR_TO_USHORT
    - inet_ntop
    - TRACE
    - lxc_ipvlan_flag_to_mode
    - list_for_each_entry
    - lxc_list_for_each_safe
    - ERROR
    - list_empty
    - lxc_log_trace
    - lxc_macvlan_flag_to_mode
    linkageType: ''
    returnType: void
    signature: void lxc_log_configured_netdevs(const struct lxc_conf *conf)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:233,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:234,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:238,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:239,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:242,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:246,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:250,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:254,1
    - Dst: lxc_list_for_each_safe
      Src: /src/lxc/src/lxc/confile_utils.c:256,1
    - Dst: PTR_TO_USHORT
      Src: /src/lxc/src/lxc/confile_utils.c:257,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:258,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:263,1
    - Dst: lxc_macvlan_flag_to_mode
      Src: /src/lxc/src/lxc/confile_utils.c:268,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:270,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:275,1
    - Dst: lxc_ipvlan_flag_to_mode
      Src: /src/lxc/src/lxc/confile_utils.c:278,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:279,1
    - Dst: lxc_ipvlan_flag_to_isolation
      Src: /src/lxc/src/lxc/confile_utils.c:282,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:283,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:286,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:287,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:290,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:293,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:297,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:300,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile_utils.c:303,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:308,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:312,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:316,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:319,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:322,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:325,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:328,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:331,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:333,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:336,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:340,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:342,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:345,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:346,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:348,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:351,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:354,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:358,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:360,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:363,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:364,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:366,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:370,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:371,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile_utils.c:372,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:376,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:379,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile_utils.c:380,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile_utils.c:381,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/confile_utils.c:385,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 389
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 2
    functionsReached:
    - lxc_ipvlan_flag_to_isolation
    - PTR_TO_USHORT
    - inet_ntop
    - TRACE
    - lxc_ipvlan_flag_to_mode
    - list_for_each_entry
    - lxc_list_for_each_safe
    - ERROR
    - lxc_macvlan_flag_to_mode
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(netdev, netdevs, head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile_utils.c:405,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile_utils.c:406,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile_utils.c:407,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile_utils.c:408,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile_utils.c:410,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile_utils.c:411,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile_utils.c:412,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile_utils.c:413,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile_utils.c:416,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile_utils.c:417,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile_utils.c:418,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile_utils.c:419,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile_utils.c:423,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile_utils.c:424,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile_utils.c:425,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile_utils.c:428,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile_utils.c:429,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile_utils.c:430,1
    - Dst: lxc_list_for_each_safe
      Src: /src/lxc/src/lxc/confile_utils.c:433,1
    - Dst: lxc_list_del
      Src: /src/lxc/src/lxc/confile_utils.c:434,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile_utils.c:435,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile_utils.c:440,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/confile_utils.c:442,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/confile_utils.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 446
    functionName: lxc_clear_netdev
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - INIT_LIST_HEAD
    - list_del
    - lxc_list_del
    - list_for_each_entry_safe
    - free
    - free_disarm
    - lxc_list_for_each_safe
    linkageType: ''
    returnType: void
    signature: void lxc_clear_netdev(struct lxc_netdev *netdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_netdev
      Src: /src/lxc/src/lxc/confile_utils.c:451,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile_utils.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 454
    functionName: lxc_free_netdev
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - free
    - lxc_clear_netdev
    linkageType: ''
    returnType: void
    signature: void lxc_free_netdev(struct lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/confile_utils.c:460,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile_utils.c:463,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile_utils.c:467,1
    - Dst: lxc_free_netdev
      Src: /src/lxc/src/lxc/confile_utils.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - conf
    - idx
    argTypes:
    - struct lxc_conf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 473
    functionName: lxc_remove_nic_by_idx
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - list_del
    - lxc_free_netdev
    - list_empty
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: bool lxc_remove_nic_by_idx(struct lxc_conf *conf, unsigned int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/confile_utils.c:479,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile_utils.c:482,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile_utils.c:483,1
    - Dst: lxc_free_netdev
      Src: /src/lxc/src/lxc/confile_utils.c:484,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/confile_utils.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 489
    functionName: lxc_free_networks
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - list_for_each_entry_safe
    - lxc_free_netdev
    - list_empty
    linkageType: ''
    returnType: void
    signature: void lxc_free_networks(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile_utils.c:502,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mode
    - value
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 510
    functionName: lxc_veth_mode_to_flag
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    linkageType: ''
    returnType: int
    signature: int lxc_veth_mode_to_flag(int *mode, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/confile_utils.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: lxc_veth_flag_to_mode
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    linkageType: ''
    returnType: char
    signature: char *lxc_veth_flag_to_mode(int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile_utils.c:537,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mode
    - value
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 545
    functionName: lxc_macvlan_mode_to_flag
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    linkageType: ''
    returnType: int
    signature: int lxc_macvlan_mode_to_flag(int *mode, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/confile_utils.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 557
    functionName: lxc_macvlan_flag_to_mode
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 2
    functionsReached:
    - ret_set_errno
    linkageType: ''
    returnType: char
    signature: char *lxc_macvlan_flag_to_mode(int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile_utils.c:571,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - mode
    - value
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: lxc_ipvlan_mode_to_flag
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    linkageType: ''
    returnType: int
    signature: int lxc_ipvlan_mode_to_flag(int *mode, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/confile_utils.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: lxc_ipvlan_flag_to_mode
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 2
    functionsReached:
    - ret_set_errno
    linkageType: ''
    returnType: char
    signature: char *lxc_ipvlan_flag_to_mode(int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile_utils.c:605,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - flag
    - value
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 613
    functionName: lxc_ipvlan_isolation_to_flag
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    linkageType: ''
    returnType: int
    signature: int lxc_ipvlan_isolation_to_flag(int *flag, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/confile_utils.c:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 625
    functionName: lxc_ipvlan_flag_to_isolation
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 2
    functionsReached:
    - ret_set_errno
    linkageType: ''
    returnType: char
    signature: char *lxc_ipvlan_flag_to_isolation(int flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile_utils.c:631,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile_utils.c:632,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile_utils.c:636,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:638,1
    - Dst: free_move_ptr
      Src: /src/lxc/src/lxc/confile_utils.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - conf_item
    - value
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 642
    functionName: set_config_string_item
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - free_disarm
    - lxc_config_value_empty
    - strdup
    - free_move_ptr
    linkageType: ''
    returnType: int
    signature: int set_config_string_item(char **conf_item, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile_utils.c:646,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:647,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile_utils.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conf_item
    - value
    - max
    argTypes:
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: set_config_string_item_max
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - strlen
    - log_error_errno
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: int set_config_string_item_max(char **conf_item, const char *value,
      size_t max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/lxc/confile_utils.c:656,1
    - Dst: set_config_string_item_max
      Src: /src/lxc/src/lxc/confile_utils.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conf_item
    - value
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 661
    functionName: set_config_path_item
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - lxc_path_simplify
    - set_config_string_item_max
    linkageType: ''
    returnType: int
    signature: int set_config_path_item(char **conf_item, const char *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile_utils.c:668,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile_utils.c:673,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - conf_item
    - value
    - empty_conf_action
    argTypes:
    - bool*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 687
    functionName: set_config_bool_item
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: int set_config_bool_item(bool *conf_item, const char *value, bool empty_conf_action)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IN_CLASSA
      Src: /src/lxc/src/lxc/confile_utils.c:691,1
    - Dst: IN_CLASSB
      Src: /src/lxc/src/lxc/confile_utils.c:694,1
    - Dst: IN_CLASSC
      Src: /src/lxc/src/lxc/confile_utils.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 701
    functionName: config_ip_prefix
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - IN_CLASSA
    - IN_CLASSB
    - IN_CLASSC
    linkageType: ''
    returnType: int
    signature: int config_ip_prefix(struct in_addr *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:708,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/confile_utils.c:710,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile_utils.c:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - valuep
    - value
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 715
    functionName: network_ifname
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - ERROR
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int network_ifname(char *valuep, const char *value, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile_utils.c:722,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile_utils.c:725,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile_utils.c:728,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/confile_utils.c:731,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/confile_utils.c:732,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile_utils.c:733,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 736
    functionName: lxc_config_net_is_hwaddr
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 2
    functionsReached:
    - strnequal
    - sscanf
    linkageType: ''
    returnType: bool
    signature: bool lxc_config_net_is_hwaddr(const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: randseed
      Src: /src/lxc/src/lxc/confile_utils.c:745,1
    - Dst: randseed
      Src: /src/lxc/src/lxc/confile_utils.c:748,1
    - Dst: rand_r
      Src: /src/lxc/src/lxc/confile_utils.c:756,1
    - Dst: rand_r
      Src: /src/lxc/src/lxc/confile_utils.c:758,1
    - Dst: rand
      Src: /src/lxc/src/lxc/confile_utils.c:760,1
    - Dst: rand
      Src: /src/lxc/src/lxc/confile_utils.c:762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - hwaddr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 767
    functionName: rand_complete_hwaddr
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - rand
    - rand_r
    - randseed
    linkageType: ''
    returnType: void
    signature: void rand_complete_hwaddr(char *hwaddr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: randseed
      Src: /src/lxc/src/lxc/confile_utils.c:776,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile_utils.c:778,1
    - Dst: rand_r
      Src: /src/lxc/src/lxc/confile_utils.c:778,1
    - Dst: rand_r
      Src: /src/lxc/src/lxc/confile_utils.c:779,1
    - Dst: rand_r
      Src: /src/lxc/src/lxc/confile_utils.c:779,1
    - Dst: randseed
      Src: /src/lxc/src/lxc/confile_utils.c:782,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile_utils.c:784,1
    - Dst: rand
      Src: /src/lxc/src/lxc/confile_utils.c:784,1
    - Dst: rand
      Src: /src/lxc/src/lxc/confile_utils.c:785,1
    - Dst: rand
      Src: /src/lxc/src/lxc/confile_utils.c:785,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hwaddr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 791
    functionName: new_hwaddr
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - rand_r
    - randseed
    - rand
    - log_error_errno
    linkageType: ''
    returnType: bool
    signature: bool new_hwaddr(char *hwaddr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile_utils.c:800,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile_utils.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - retv
    - inlen
    - value
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 805
    functionName: lxc_get_conf_str
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: int
    signature: int lxc_get_conf_str(char *retv, int inlen, const char *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile_utils.c:815,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile_utils.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - retv
    - inlen
    - v
    argTypes:
    - struct lxc_conf*
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 820
    functionName: lxc_get_conf_bool
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: int lxc_get_conf_bool(struct lxc_conf *c, char *retv, int inlen, bool
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile_utils.c:830,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile_utils.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - retv
    - inlen
    - v
    argTypes:
    - struct lxc_conf*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 835
    functionName: lxc_get_conf_int
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: int lxc_get_conf_int(struct lxc_conf *c, char *retv, int inlen, int
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile_utils.c:845,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile_utils.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - retv
    - inlen
    - v
    argTypes:
    - struct lxc_conf*
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 850
    functionName: lxc_get_conf_size_t
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: int lxc_get_conf_size_t(struct lxc_conf *c, char *retv, int inlen,
      size_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile_utils.c:860,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile_utils.c:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - retv
    - inlen
    - v
    argTypes:
    - struct lxc_conf*
    - char*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 865
    functionName: lxc_get_conf_uint64
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: int lxc_get_conf_uint64(struct lxc_conf *c, char *retv, int inlen,
      uint64_t v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/lxc/src/lxc/confile_utils.c:874,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/confile_utils.c:878,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:880,1
    - Dst: __put_lxc_container*::may_control
      Src: /src/lxc/src/lxc/confile_utils.c:882,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:883,1
    - Dst: __put_lxc_container*::init_pid
      Src: /src/lxc/src/lxc/confile_utils.c:885,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:887,1
    - Dst: kill
      Src: /src/lxc/src/lxc/confile_utils.c:891,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile_utils.c:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - lxcname_or_pid
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 896
    functionName: lxc_container_name_to_pid
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - strtol
    - kill
    - __put_lxc_container*::init_pid
    - lxc_container_new
    - __put_lxc_container*::may_control
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_container_name_to_pid(const char *lxcname_or_pid,\n\t\t\t\t
      \    const char *lxcpath)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/confile_utils.c:906,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/confile_utils.c:909,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile_utils.c:911,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:913,1
    - Dst: lxc_container_name_to_pid
      Src: /src/lxc/src/lxc/confile_utils.c:920,1
    - Dst: lxc_preserve_ns
      Src: /src/lxc/src/lxc/confile_utils.c:924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - nsfd_path
    - lxcpath
    - namespace
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 929
    functionName: lxc_inherit_namespace
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - lxc_container_name_to_pid
    - ret_errno
    - lxc_preserve_ns
    - strrchr
    - strdup
    - open
    linkageType: ''
    returnType: int
    signature: "int lxc_inherit_namespace(const char *nsfd_path, const char *lxcpath,\n\t\t\t
      \ const char *namespace)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile_utils.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1025
    functionName: sig_num
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    linkageType: ''
    returnType: int
    signature: int sig_num(const char *sig)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile_utils.c:1032,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:1033,1
    - Dst: strncasecmp
      Src: /src/lxc/src/lxc/confile_utils.c:1035,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1035,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1037,1
    - Dst: strncasecmp
      Src: /src/lxc/src/lxc/confile_utils.c:1038,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1038,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1040,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:1042,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile_utils.c:1045,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile_utils.c:1045,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:1046,1
    - Dst: sig_num
      Src: /src/lxc/src/lxc/confile_utils.c:1048,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:1050,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - signame
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1058
    functionName: rt_sig_num
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - STRLITERALLEN
    - isdigit
    - is_empty_string
    - sig_num
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int rt_sig_num(const char *signame)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile_utils.c:1062,1
    - Dst: sig_num
      Src: /src/lxc/src/lxc/confile_utils.c:1063,1
    - Dst: strncasecmp
      Src: /src/lxc/src/lxc/confile_utils.c:1065,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1065,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1066,1
    - Dst: strncasecmp
      Src: /src/lxc/src/lxc/confile_utils.c:1067,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1067,1
    - Dst: rt_sig_num
      Src: /src/lxc/src/lxc/confile_utils.c:1068,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile_utils.c:1068,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/confile_utils.c:1070,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/confile_utils.c:1071,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile_utils.c:1075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - signame
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1076
    functionName: sig_parse
    functionSourceFile: /src/lxc/src/lxc/confile_utils.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - ret_errno
    - STRLITERALLEN
    - isdigit
    - ARRAY_SIZE
    - rt_sig_num
    - sig_num
    - strncasecmp
    linkageType: ''
    returnType: int
    signature: int sig_parse(const char *signame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: lxc_init_list
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_init_list(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __iterator
    - ','
    - __list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: lxc_list_for_each
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_list_for_each(__iterator, __list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __iterator
    - ','
    - __list
    - ','
    - __next
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: lxc_list_for_each_safe
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_list_for_each_safe(__iterator, __list, __next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: lxc_list_init
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_list_init(struct lxc_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - elem
    argTypes:
    - struct lxc_list*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: lxc_list_add_elem
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_list_add_elem(struct lxc_list *list, void *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: lxc_list_first_elem
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *lxc_list_first_elem(const struct lxc_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: lxc_list_last_elem
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *lxc_list_last_elem(const struct lxc_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: lxc_list_empty
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_list_empty(const struct lxc_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - new
    - prev
    - next
    argTypes:
    - struct lxc_list*
    - struct lxc_list*
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: __lxc_list_add
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __lxc_list_add(struct lxc_list *new, struct lxc_list *prev,\n\t\t\t\t
      \ struct lxc_list *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_list_add
      Src: /src/lxc/src/lxc/list.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - list
    argTypes:
    - struct lxc_list*
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: lxc_list_add
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 1
    functionsReached:
    - __lxc_list_add
    linkageType: ''
    returnType: void
    signature: void lxc_list_add(struct lxc_list *head, struct lxc_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_list_add
      Src: /src/lxc/src/lxc/list.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - head
    - list
    argTypes:
    - struct lxc_list*
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: lxc_list_add_tail
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached:
    - __lxc_list_add
    linkageType: ''
    returnType: void
    signature: "void lxc_list_add_tail(struct lxc_list *head,\n\t\t\t\t     struct
      lxc_list *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: lxc_list_del
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_list_del(struct lxc_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: lxc_list_len
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t lxc_list_len(struct lxc_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: lxc_list_for_each
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_list_for_each(iter, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/list.h:154,1
    - Dst: lxc_list_init
      Src: /src/lxc/src/lxc/list.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: lxc_list_new
    functionSourceFile: /src/lxc/src/lxc/list.h
    functionUses: 0
    functionsReached:
    - lxc_list_init
    - zalloc
    linkageType: ''
    returnType: struct lxc_list
    signature: struct lxc_list *lxc_list_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/namespace.c:54,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/namespace.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - namespace
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: lxc_namespace_2_cloneflag
    functionSourceFile: /src/lxc/src/lxc/namespace.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int lxc_namespace_2_cloneflag(const char *namespace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/namespace.c:64,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/namespace.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - namespace
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: lxc_namespace_2_ns_idx
    functionSourceFile: /src/lxc/src/lxc/namespace.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strequal
    linkageType: ''
    returnType: int
    signature: int lxc_namespace_2_ns_idx(const char *namespace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/lxc/src/lxc/namespace.c:96,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/namespace.c:97,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/namespace.c:97,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/namespace.c:100,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/namespace.c:101,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/namespace.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - namespaces
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 104
    functionName: lxc_namespace_2_std_identifiers
    functionSourceFile: /src/lxc/src/lxc/namespace.c
    functionUses: 0
    functionsReached:
    - memmove
    - strlen
    - strstr
    linkageType: ''
    returnType: int
    signature: int lxc_namespace_2_std_identifiers(char *namespaces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/namespace.c:112,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/namespace.c:116,1
    - Dst: lxc_namespace_2_cloneflag
      Src: /src/lxc/src/lxc/namespace.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - flaglist
    - flags
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: lxc_fill_namespace_flags
    functionSourceFile: /src/lxc/src/lxc/namespace.c
    functionUses: 0
    functionsReached:
    - lxc_iterate_parts
    - ERROR
    - lxc_namespace_2_cloneflag
    linkageType: ''
    returnType: int
    signature: int lxc_fill_namespace_flags(char *flaglist, int *flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lxc_getpagesize
      Src: /src/lxc/src/lxc/ringbuf.c:32,1
    - Dst: mmap
      Src: /src/lxc/src/lxc/ringbuf.c:35,1
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/ringbuf.c:40,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/ringbuf.c:43,1
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/ringbuf.c:44,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/lxc/ringbuf.c:53,1
    - Dst: ftruncate
      Src: /src/lxc/src/lxc/ringbuf.c:58,1
    - Dst: mmap
      Src: /src/lxc/src/lxc/ringbuf.c:62,1
    - Dst: mmap
      Src: /src/lxc/src/lxc/ringbuf.c:67,1
    - Dst: lxc_ringbuf_release
      Src: /src/lxc/src/lxc/ringbuf.c:75,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - struct lxc_ringbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 77
    functionName: lxc_ringbuf_create
    functionSourceFile: /src/lxc/src/lxc/ringbuf.c
    functionUses: 0
    functionsReached:
    - mmap
    - memfd_create
    - lxc_getpagesize
    - lxc_make_tmpfile
    - ftruncate
    - TRACE
    - lxc_ringbuf_release
    linkageType: ''
    returnType: int
    signature: int lxc_ringbuf_create(struct lxc_ringbuf *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct lxc_ringbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: lxc_ringbuf_move_read_addr
    functionSourceFile: /src/lxc/src/lxc/ringbuf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_ringbuf_move_read_addr(struct lxc_ringbuf *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ringbuf_free
      Src: /src/lxc/src/lxc/ringbuf.c:108,1
    - Dst: lxc_ringbuf_move_read_addr
      Src: /src/lxc/src/lxc/ringbuf.c:112,1
    - Dst: lxc_ringbuf_get_write_addr
      Src: /src/lxc/src/lxc/ringbuf.c:113,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/ringbuf.c:114,1
    - Dst: lxc_ringbuf_move_write_addr
      Src: /src/lxc/src/lxc/ringbuf.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - msg
    - len
    argTypes:
    - struct lxc_ringbuf*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: lxc_ringbuf_write
    functionSourceFile: /src/lxc/src/lxc/ringbuf.c
    functionUses: 0
    functionsReached:
    - lxc_ringbuf_move_write_addr
    - memcpy
    - lxc_ringbuf_get_write_addr
    - lxc_ringbuf_move_read_addr
    - lxc_ringbuf_free
    linkageType: ''
    returnType: int
    signature: int lxc_ringbuf_write(struct lxc_ringbuf *buf, const char *msg, size_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ringbuf_used
      Src: /src/lxc/src/lxc/ringbuf.c:128,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/ringbuf.c:133,1
    - Dst: lxc_ringbuf_get_read_addr
      Src: /src/lxc/src/lxc/ringbuf.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - buf
    - out
    - len
    argTypes:
    - struct lxc_ringbuf*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: lxc_ringbuf_read
    functionSourceFile: /src/lxc/src/lxc/ringbuf.c
    functionUses: 0
    functionsReached:
    - lxc_ringbuf_used
    - memcpy
    - lxc_ringbuf_get_read_addr
    linkageType: ''
    returnType: int
    signature: int lxc_ringbuf_read(struct lxc_ringbuf *buf, char *out, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - command
    argTypes:
    - struct lxc_cmd_rr*
    - lxc_cmd_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: lxc_cmd_init
    functionSourceFile: /src/lxc/src/lxc/commands.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_cmd_init(struct lxc_cmd_rr *cmd, lxc_cmd_t command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cmd
    - len_data
    - data
    argTypes:
    - struct lxc_cmd_rr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: lxc_cmd_data
    functionSourceFile: /src/lxc/src/lxc/commands.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_cmd_data(struct lxc_cmd_rr *cmd, int len_data, const void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/lxc/src/lxc/ringbuf.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct lxc_ringbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: lxc_ringbuf_release
    functionSourceFile: /src/lxc/src/lxc/ringbuf.h
    functionUses: 1
    functionsReached:
    - munmap
    linkageType: ''
    returnType: void
    signature: void lxc_ringbuf_release(struct lxc_ringbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct lxc_ringbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: lxc_ringbuf_clear
    functionSourceFile: /src/lxc/src/lxc/ringbuf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_ringbuf_clear(struct lxc_ringbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct lxc_ringbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: lxc_ringbuf_used
    functionSourceFile: /src/lxc/src/lxc/ringbuf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t lxc_ringbuf_used(struct lxc_ringbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ringbuf_used
      Src: /src/lxc/src/lxc/ringbuf.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct lxc_ringbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: lxc_ringbuf_free
    functionSourceFile: /src/lxc/src/lxc/ringbuf.h
    functionUses: 1
    functionsReached:
    - lxc_ringbuf_used
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t lxc_ringbuf_free(struct lxc_ringbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct lxc_ringbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: lxc_ringbuf_get_read_addr
    functionSourceFile: /src/lxc/src/lxc/ringbuf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_ringbuf_get_read_addr(struct lxc_ringbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct lxc_ringbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: lxc_ringbuf_get_write_addr
    functionSourceFile: /src/lxc/src/lxc/ringbuf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_ringbuf_get_write_addr(struct lxc_ringbuf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - struct lxc_ringbuf*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: lxc_ringbuf_move_write_addr
    functionSourceFile: /src/lxc/src/lxc/ringbuf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_ringbuf_move_write_addr(struct lxc_ringbuf *buf, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/freezer.c:31,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/freezer.c:37,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/freezer.c:38,1
    - Dst: cgroup_init
      Src: /src/lxc/src/lxc/freezer.c:40,1
    - Dst: struct cgroup_ops*::set
      Src: /src/lxc/src/lxc/freezer.c:44,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/freezer.c:46,1
    - Dst: struct cgroup_ops*::get
      Src: /src/lxc/src/lxc/freezer.c:52,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/freezer.c:55,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/freezer.c:57,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/freezer.c:57,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/freezer.c:58,1
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/freezer.c:59,1
    - Dst: sleep
      Src: /src/lxc/src/lxc/freezer.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - freeze
    - conf
    - name
    - lxcpath
    argTypes:
    - bool
    - struct lxc_conf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 67
    functionName: do_freeze_thaw
    functionSourceFile: /src/lxc/src/lxc/freezer.c
    functionUses: 0
    functionsReached:
    - lxc_state2str
    - strnequal
    - log_error
    - strlen
    - lxc_char_right_gc
    - lxc_cmd_notify_state_listeners
    - struct cgroup_ops*::get
    - cgroup_init
    - call_cleaner
    - sleep
    - struct cgroup_ops*::set
    linkageType: ''
    returnType: int
    signature: "int do_freeze_thaw(bool freeze, struct lxc_conf *conf, const char
      *name,\n\t\t\t  const char *lxcpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/freezer.c:73,1
    - Dst: do_freeze_thaw
      Src: /src/lxc/src/lxc/freezer.c:74,1
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/freezer.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - conf
    - name
    - lxcpath
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: lxc_freeze
    functionSourceFile: /src/lxc/src/lxc/freezer.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_notify_state_listeners
    - do_freeze_thaw
    linkageType: ''
    returnType: int
    signature: int lxc_freeze(struct lxc_conf *conf, const char *name, const char
      *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/freezer.c:83,1
    - Dst: do_freeze_thaw
      Src: /src/lxc/src/lxc/freezer.c:84,1
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/freezer.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - conf
    - name
    - lxcpath
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: lxc_unfreeze
    functionSourceFile: /src/lxc/src/lxc/freezer.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_notify_state_listeners
    - do_freeze_thaw
    linkageType: ''
    returnType: int
    signature: int lxc_unfreeze(struct lxc_conf *conf, const char *name, const char
      *lxcpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - category
    - priority
    argTypes:
    - struct lxc_log_category*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: lxc_log_priority_is_enabled
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int lxc_log_priority_is_enabled(const struct lxc_log_category *category,\n\t\t\t\t\t
      \     int priority)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - priority
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: lxc_log_priority_to_string
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_log_priority_to_string(int priority)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - priority
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 162
    functionName: lxc_syslog_priority_to_string
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_syslog_priority_to_string(int priority)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:169,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:171,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:173,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:175,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:177,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:179,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:181,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:183,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:185,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 189
    functionName: lxc_log_priority_to_int
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int lxc_log_priority_to_int(const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:193,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:195,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:197,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:199,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:201,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:203,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:205,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:207,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/log.h:209,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 213
    functionName: lxc_syslog_priority_to_int
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int lxc_syslog_priority_to_int(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/lxc/src/lxc/log.h:222,1
    - Dst: struct lxc_log_appender*::append
      Src: /src/lxc/src/lxc/log.h:224,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/log.h:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - appender
    - event
    argTypes:
    - struct lxc_log_appender*
    - struct lxc_log_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: __lxc_log_append
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached:
    - va_end
    - va_copy
    - struct lxc_log_appender*::append
    linkageType: ''
    returnType: void
    signature: "void __lxc_log_append(const struct lxc_log_appender *appender,\n\t\t\t\t
      \   struct lxc_log_event *event)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_log_append
      Src: /src/lxc/src/lxc/log.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - category
    - event
    argTypes:
    - struct lxc_log_category*
    - struct lxc_log_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 237
    functionName: __lxc_log
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached:
    - __lxc_log_append
    linkageType: ''
    returnType: void
    signature: "void __lxc_log(const struct lxc_log_category *category,\n\t\t\t     struct
      lxc_log_event *event)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - acategory
    - ','
    - LEVEL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 263
    functionName: lxc_log_priority_define
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_log_priority_define(acategory, LEVEL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: lxc_log_category_define
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_log_category_define(name, parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: lxc_log_define
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_log_define(name, parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: lxc_log_category_priority
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_log_category_priority(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: TRACE
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: DEBUG
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: INFO
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: NOTICE
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOTICE(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: WARN
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: ERROR
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: CRIT
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRIT(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: ALERT
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALERT(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: FATAL
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATAL(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: SYSTRACE
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSTRACE(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: SYSTRACE
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSTRACE(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: SYSDEBUG
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSDEBUG(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: SYSDEBUG
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSDEBUG(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: SYSINFO
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSINFO(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: SYSINFO
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSINFO(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: SYSNOTICE
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSNOTICE(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 435
    functionName: SYSNOTICE
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSNOTICE(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: SYSWARN
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSWARN(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: SYSWARN
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSWARN(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: SYSERROR
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSERROR(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: SYSERROR
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSERROR(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: CMD_SYSERROR
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_SYSERROR(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: CMD_SYSERROR
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_SYSERROR(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 476
    functionName: CMD_SYSINFO
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_SYSINFO(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: CMD_SYSINFO
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_SYSINFO(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __ret__
    - ','
    - __errno__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: log_error_errno
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_error_errno(__ret__, __errno__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: log_error
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_error(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __ret__
    - ','
    - __errno__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: log_trace_errno
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_trace_errno(__ret__, __errno__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: log_trace
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_trace(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __ret__
    - ','
    - __errno__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: log_warn_errno
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_warn_errno(__ret__, __errno__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: log_warn
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_warn(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __ret__
    - ','
    - __errno__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 537
    functionName: log_debug_errno
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_debug_errno(__ret__, __errno__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 544
    functionName: log_debug
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_debug(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __ret__
    - ','
    - __errno__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 552
    functionName: log_info_errno
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_info_errno(__ret__, __errno__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: log_info
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_info(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: syserror
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: syserror(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 574
    functionName: syserror_set
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: syserror_set(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: syserror_ret
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: syserror_ret(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: error_ret
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: error_ret(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: syswarn
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: syswarn(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 602
    functionName: syswarn_set
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: syswarn_set(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 609
    functionName: syswarn_ret
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: syswarn_ret(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: sysinfo
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sysinfo(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: sysinfo_set
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sysinfo_set(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 630
    functionName: sysinfo_ret
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sysinfo_ret(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 636
    functionName: sysdebug
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sysdebug(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 644
    functionName: sysdebug_set
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sysdebug_set(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: sysdebug_ret
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sysdebug_ret(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 657
    functionName: systrace
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: systrace(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: systrace_set
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: systrace_set(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ret__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 672
    functionName: systrace_ret
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: systrace_ret(__ret__, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_get_level
      Src: /src/lxc/src/lxc/log.h:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 683
    functionName: lxc_log_trace
    functionSourceFile: /src/lxc/src/lxc/log.h
    functionUses: 1
    functionsReached:
    - lxc_log_get_level
    linkageType: ''
    returnType: bool
    signature: bool lxc_log_trace(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/error.c:28,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/error.c:29,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/error.c:31,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/lxc/error.c:32,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/error.c:33,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/error.c:34,1
    - Dst: signal_name
      Src: /src/lxc/src/lxc/error.c:34,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/error.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pid
    - status
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: lxc_error_set_and_log
    functionSourceFile: /src/lxc/src/lxc/error.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - WIFSIGNALED
    - signal_name
    - INFO
    - WEXITSTATUS
    - ERROR
    - WTERMSIG
    linkageType: ''
    returnType: int
    signature: int lxc_error_set_and_log(int pid, int status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/rexec.c:48,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/rexec.c:50,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - data
    - data_length
    - output
    argTypes:
    - char*
    - int
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: push_vargs
    functionSourceFile: /src/lxc/src/lxc/rexec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int push_vargs(const char *data, int data_length, char ***output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_to_buf
      Src: /src/lxc/src/lxc/rexec.c:66,1
    - Dst: push_vargs
      Src: /src/lxc/src/lxc/rexec.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: parse_argv
    functionSourceFile: /src/lxc/src/lxc/rexec.c
    functionUses: 0
    functionsReached:
    - file_to_buf
    - push_vargs
    linkageType: ''
    returnType: int
    signature: int parse_argv(char ***argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/rexec.c:79,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/rexec.c:83,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/rexec.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: is_memfd
    functionSourceFile: /src/lxc/src/lxc/rexec.c
    functionUses: 0
    functionsReached:
    - fcntl
    - fstat
    - open
    linkageType: ''
    returnType: int
    signature: int is_memfd(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/rexec.c:104,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/rexec.c:107,1
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/rexec.c:108,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/rexec.c:114,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/lxc/rexec.c:119,1
    - Dst: fchmod
      Src: /src/lxc/src/lxc/rexec.c:123,1
    - Dst: open
      Src: /src/lxc/src/lxc/rexec.c:128,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/rexec.c:133,1
    - Dst: lxc_sendfile_nointr
      Src: /src/lxc/src/lxc/rexec.c:140,1
    - Dst: lseek
      Src: /src/lxc/src/lxc/rexec.c:147,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/rexec.c:148,1
    - Dst: fd_to_fd
      Src: /src/lxc/src/lxc/rexec.c:150,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/rexec.c:157,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/rexec.c:160,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/rexec.c:163,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/rexec.c:167,1
    - Dst: open
      Src: /src/lxc/src/lxc/rexec.c:171,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/rexec.c:172,1
    - Dst: fexecve
      Src: /src/lxc/src/lxc/rexec.c:178,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 3
    argNames:
    - argv
    - envp
    - memfd_name
    argTypes:
    - char**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 179
    functionName: lxc_rexec_as_memfd
    functionSourceFile: /src/lxc/src/lxc/rexec.c
    functionUses: 0
    functionsReached:
    - fexecve
    - strnprintf
    - close_prot_errno_disarm
    - fcntl
    - memfd_create
    - fprintf
    - lxc_make_tmpfile
    - fd_to_fd
    - TRACE
    - lxc_sendfile_nointr
    - fstat
    - move_fd
    - lseek
    - fchmod
    - open
    linkageType: ''
    returnType: void
    signature: void lxc_rexec_as_memfd(char **argv, char **envp, const char *memfd_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_memfd
      Src: /src/lxc/src/lxc/rexec.c:192,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/rexec.c:194,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/rexec.c:195,1
    - Dst: parse_argv
      Src: /src/lxc/src/lxc/rexec.c:201,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/rexec.c:203,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/rexec.c:204,1
    - Dst: lxc_rexec_as_memfd
      Src: /src/lxc/src/lxc/rexec.c:208,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/rexec.c:209,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/rexec.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - memfd_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: lxc_rexec
    functionSourceFile: /src/lxc/src/lxc/rexec.c
    functionUses: 0
    functionsReached:
    - fprintf
    - lxc_rexec_as_memfd
    - strerror
    - is_memfd
    - parse_argv
    linkageType: ''
    returnType: int
    signature: int lxc_rexec(const char *memfd_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/lxc/src/lxc/rexec.c:222,1
    - Dst: lxc_rexec
      Src: /src/lxc/src/lxc/rexec.c:222,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/rexec.c:223,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/rexec.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: liblxc_rexec
    functionSourceFile: /src/lxc/src/lxc/rexec.c
    functionUses: 0
    functionsReached:
    - _exit
    - lxc_rexec
    - getenv
    - fprintf
    linkageType: ''
    returnType: void
    signature: void liblxc_rexec(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - lxc_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: lxc_state2str
    functionSourceFile: /src/lxc/src/lxc/state.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_state2str(lxc_state_t state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/state.c:47,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/state.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: lxc_str2state
    functionSourceFile: /src/lxc/src/lxc/state.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strequal
    linkageType: ''
    returnType: lxc_state_t
    signature: lxc_state_t lxc_str2state(const char *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_state
      Src: /src/lxc/src/lxc/state.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - lxcpath
    - timeout
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: lxc_getstate
    functionSourceFile: /src/lxc/src/lxc/state.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_get_state
    linkageType: ''
    returnType: lxc_state_t
    signature: lxc_state_t lxc_getstate(const char *name, const char *lxcpath, int
      timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/state.c:68,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/state.c:72,1
    - Dst: lxc_str2state
      Src: /src/lxc/src/lxc/state.c:73,1
    - Dst: free
      Src: /src/lxc/src/lxc/state.c:75,1
    - Dst: free
      Src: /src/lxc/src/lxc/state.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - strstates
    - states
    argTypes:
    - char*
    - lxc_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 83
    functionName: fillwaitedstates
    functionSourceFile: /src/lxc/src/lxc/state.c
    functionUses: 0
    functionsReached:
    - free
    - lxc_str2state
    - lxc_iterate_parts
    - strdup
    linkageType: ''
    returnType: int
    signature: int fillwaitedstates(const char *strstates, lxc_state_t *states)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fillwaitedstates
      Src: /src/lxc/src/lxc/state.c:91,1
    - Dst: lxc_cmd_sock_get_state
      Src: /src/lxc/src/lxc/state.c:100,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/state.c:105,1
    - Dst: nanosleep
      Src: /src/lxc/src/lxc/state.c:113,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/state.c:116,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/state.c:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - lxcname
    - states
    - timeout
    - lxcpath
    argTypes:
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 121
    functionName: lxc_wait
    functionSourceFile: /src/lxc/src/lxc/state.c
    functionUses: 0
    functionsReached:
    - nanosleep
    - lxc_cmd_sock_get_state
    - lxc_state2str
    - TRACE
    - fillwaitedstates
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_wait(const char *lxcname, const char *states, int timeout,\n\t
      \    const char *lxcpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - glh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: RTNLMSG_DATA
    functionSourceFile: /src/lxc/src/lxc/rtnl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTNLMSG_DATA(glh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/commands_utils.c:37,1
    - Dst: setsockopt
      Src: /src/lxc/src/lxc/commands_utils.c:39,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands_utils.c:42,1
    - Dst: memset
      Src: /src/lxc/src/lxc/commands_utils.c:45,1
    - Dst: lxc_recv_nointr
      Src: /src/lxc/src/lxc/commands_utils.c:47,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands_utils.c:49,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/commands_utils.c:51,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/commands_utils.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state_client_fd
    - timeout
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: lxc_cmd_sock_rcv_state
    functionSourceFile: /src/lxc/src/lxc/commands_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_state2str
    - setsockopt
    - log_trace
    - log_error_errno
    - lxc_recv_nointr
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_sock_rcv_state(int state_client_fd, int timeout)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_add_state_client
      Src: /src/lxc/src/lxc/commands_utils.c:62,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/commands_utils.c:70,1
    - Dst: lxc_cmd_sock_rcv_state
      Src: /src/lxc/src/lxc/commands_utils.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - name
    - lxcpath
    - states
    - timeout
    argTypes:
    - char*
    - char*
    - lxc_state_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: lxc_cmd_sock_get_state
    functionSourceFile: /src/lxc/src/lxc/commands_utils.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_add_state_client
    - ret_errno
    - lxc_cmd_sock_rcv_state
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_sock_get_state(const char *name, const char *lxcpath,\n\t\t\t
      \  lxc_state_t states[MAX_STATE], int timeout)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/commands_utils.c:106,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands_utils.c:108,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/commands_utils.c:113,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/commands_utils.c:115,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/commands_utils.c:122,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands_utils.c:124,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands_utils.c:131,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands_utils.c:131,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/commands_utils.c:132,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/commands_utils.c:133,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands_utils.c:135,1
    - Dst: fnv_64a_buf
      Src: /src/lxc/src/lxc/commands_utils.c:137,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/commands_utils.c:138,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands_utils.c:140,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 6
    argNames:
    - path
    - pathlen
    - lxcname
    - lxcpath
    - hashed_sock_name
    - suffix
    argTypes:
    - char*
    - size_t
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 144
    functionName: lxc_make_abstract_socket_name
    functionSourceFile: /src/lxc/src/lxc/commands_utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - log_error
    - strlen
    - snprintf
    - lxc_global_config_value
    - fnv_64a_buf
    - log_error_errno
    - must_realloc
    linkageType: ''
    returnType: int
    signature: "int lxc_make_abstract_socket_name(char *path, size_t pathlen,\n\t\t\t\t
      \ const char *lxcname,\n\t\t\t\t  const char *lxcpath,\n\t\t\t\t  const char
      *hashed_sock_name,\n\t\t\t\t  const char *suffix)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_make_abstract_socket_name
      Src: /src/lxc/src/lxc/commands_utils.c:153,1
    - Dst: lxc_abstract_unix_connect
      Src: /src/lxc/src/lxc/commands_utils.c:159,1
    - Dst: lxc_socket_set_timeout
      Src: /src/lxc/src/lxc/commands_utils.c:163,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/commands_utils.c:164,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands_utils.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - name
    - lxcpath
    - hashed_sock_name
    - suffix
    - rcv_timeout
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: lxc_cmd_connect
    functionSourceFile: /src/lxc/src/lxc/commands_utils.c
    functionUses: 0
    functionsReached:
    - lxc_make_abstract_socket_name
    - lxc_abstract_unix_connect
    - log_trace
    - move_fd
    - lxc_socket_set_timeout
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_connect(const char *name, const char *lxcpath,\n\t\t    const
      char *hashed_sock_name, const char *suffix, int rcv_timeout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/commands_utils.c:175,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/commands_utils.c:180,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/commands_utils.c:185,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/commands_utils.c:186,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands_utils.c:188,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands_utils.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - state_client_fd
    - handler
    - states
    argTypes:
    - int
    - struct lxc_handler*
    - lxc_state_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 194
    functionName: lxc_add_state_client
    functionSourceFile: /src/lxc/src/lxc/commands_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - move_ptr
    - list_add_tail
    - TRACE
    - zalloc
    linkageType: ''
    returnType: int
    signature: "int lxc_add_state_client(int state_client_fd, struct lxc_handler *handler,\n\t\t\t
      lxc_state_t states[MAX_STATE])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_serve_state_clients
      Src: /src/lxc/src/lxc/commands_utils.c:199,1
    - Dst: lxc_monitor_send_state
      Src: /src/lxc/src/lxc/commands_utils.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - name
    - lxcpath
    - state
    argTypes:
    - char*
    - char*
    - lxc_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: lxc_cmd_notify_state_listeners
    functionSourceFile: /src/lxc/src/lxc/commands_utils.c
    functionUses: 3
    functionsReached:
    - lxc_monitor_send_state
    - lxc_cmd_serve_state_clients
    linkageType: ''
    returnType: void
    signature: "void lxc_cmd_notify_state_listeners(const char *name, const char *lxcpath,\n\t\t\t\t
      \   lxc_state_t state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - lxc_id128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: make_v4_uuid
    functionSourceFile: /src/lxc/src/lxc/uuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lxc_id128_t
    signature: lxc_id128_t make_v4_uuid(lxc_id128_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/uuid.c:45,1
    - Dst: read
      Src: /src/lxc/src/lxc/uuid.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: get_random_bytes
    functionSourceFile: /src/lxc/src/lxc/uuid.c
    functionUses: 0
    functionsReached:
    - read
    - open
    linkageType: ''
    returnType: int
    signature: int get_random_bytes(void *p, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_random_bytes
      Src: /src/lxc/src/lxc/uuid.c:63,1
    - Dst: make_v4_uuid
      Src: /src/lxc/src/lxc/uuid.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ret
    argTypes:
    - lxc_id128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: lxc_id128_randomize
    functionSourceFile: /src/lxc/src/lxc/uuid.c
    functionUses: 0
    functionsReached:
    - make_v4_uuid
    - get_random_bytes
    linkageType: ''
    returnType: int
    signature: int lxc_id128_randomize(lxc_id128_t *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: hexchar
    functionSourceFile: /src/lxc/src/lxc/uuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char hexchar(int x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hexchar
      Src: /src/lxc/src/lxc/uuid.c:94,1
    - Dst: hexchar
      Src: /src/lxc/src/lxc/uuid.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - id
    - s
    argTypes:
    - lxc_id128_t
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: id128_to_uuid_string
    functionSourceFile: /src/lxc/src/lxc/uuid.c
    functionUses: 0
    functionsReached:
    - hexchar
    linkageType: ''
    returnType: char
    signature: char *id128_to_uuid_string(lxc_id128_t id, char s[37])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id128_to_uuid_string
      Src: /src/lxc/src/lxc/uuid.c:109,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/uuid.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - id
    argTypes:
    - int
    - lxc_id128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: lxc_id128_write_fd
    functionSourceFile: /src/lxc/src/lxc/uuid.c
    functionUses: 0
    functionsReached:
    - lxc_write_nointr
    - id128_to_uuid_string
    linkageType: ''
    returnType: int
    signature: int lxc_id128_write_fd(int fd, lxc_id128_t id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/uuid.c:124,1
    - Dst: lxc_id128_write_fd
      Src: /src/lxc/src/lxc/uuid.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - id
    argTypes:
    - char*
    - lxc_id128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: lxc_id128_write
    functionSourceFile: /src/lxc/src/lxc/uuid.c
    functionUses: 0
    functionsReached:
    - lxc_id128_write_fd
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_id128_write(const char *p, lxc_id128_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/lxc/src/lxc/utils.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: lxc_set_cloexec
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int lxc_set_cloexec(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_pclose
      Src: /src/lxc/src/lxc/utils.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - struct lxc_popen_FILE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: __auto_lxc_pclose__
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached:
    - lxc_pclose
    linkageType: ''
    returnType: void
    signature: void __auto_lxc_pclose__(struct lxc_popen_FILE **f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/lxc/utils.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: am_guest_unpriv
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached:
    - geteuid
    linkageType: ''
    returnType: bool
    signature: bool am_guest_unpriv(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/lxc/utils.h:102,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/utils.h:108,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/utils.h:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: am_host_unpriv
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached:
    - geteuid
    - fscanf
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool am_host_unpriv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: try_switch_to_ns
      Src: /src/lxc/src/lxc/utils.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pid
    - ns
    argTypes:
    - pid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: switch_to_ns
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 1
    functionsReached:
    - try_switch_to_ns
    linkageType: ''
    returnType: bool
    signature: bool switch_to_ns(pid_t pid, const char *ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/lxc/src/lxc/utils.h:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: lxc_getpagesize
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 1
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t lxc_getpagesize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: uid_valid
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool uid_valid(uid_t uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gid
    argTypes:
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: gid_valid
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gid_valid(gid_t gid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/lxc/src/lxc/utils.h:252,1
    - Dst: min
      Src: /src/lxc/src/lxc/utils.h:253,1
    - Dst: memset
      Src: /src/lxc/src/lxc/utils.h:257,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/utils.h:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - server_size
    - dst
    - client_size
    - src
    argTypes:
    - __u32
    - void*
    - __u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: copy_struct_from_client
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached:
    - memset
    - min
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int copy_struct_from_client(__u32 server_size, void *dst,\n\t\t\t\t\t
      \ __u32 client_size, const void *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/lxc/src/lxc/utils.h:270,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/utils.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - client_size
    - dst
    - server_size
    - src
    argTypes:
    - __u32
    - void*
    - __u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: copy_struct_to_client
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 0
    functionsReached:
    - min
    - memcpy
    linkageType: ''
    returnType: __u32
    signature: "__u32 copy_struct_to_client(__u32 client_size, void *dst,\n\t\t\t\t\t
      \ __u32 server_size, const void *src)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_to_buf
      Src: /src/lxc/src/lxc/utils.h:282,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/utils.h:289,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/utils.h:292,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/utils.h:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 296
    functionName: is_in_comm
    functionSourceFile: /src/lxc/src/lxc/utils.h
    functionUses: 2
    functionsReached:
    - file_to_buf
    - memcpy
    - strstr
    - malloc
    linkageType: ''
    returnType: int
    signature: int is_in_comm(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/rtnl.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct rtnl_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: rtnetlink_open
    functionSourceFile: /src/lxc/src/lxc/rtnl.c
    functionUses: 0
    functionsReached:
    - netlink_open
    linkageType: ''
    returnType: int
    signature: int rtnetlink_open(struct rtnl_handler *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netlink_close
      Src: /src/lxc/src/lxc/rtnl.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct rtnl_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: rtnetlink_close
    functionSourceFile: /src/lxc/src/lxc/rtnl.c
    functionUses: 0
    functionsReached:
    - netlink_close
    linkageType: ''
    returnType: void
    signature: void rtnetlink_close(struct rtnl_handler *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netlink_rcv
      Src: /src/lxc/src/lxc/rtnl.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - rtnlmsg
    argTypes:
    - struct rtnl_handler*
    - struct rtnlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: rtnetlink_rcv
    functionSourceFile: /src/lxc/src/lxc/rtnl.c
    functionUses: 0
    functionsReached:
    - netlink_rcv
    linkageType: ''
    returnType: int
    signature: int rtnetlink_rcv(struct rtnl_handler *handler, struct rtnlmsg *rtnlmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netlink_send
      Src: /src/lxc/src/lxc/rtnl.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - rtnlmsg
    argTypes:
    - struct rtnl_handler*
    - struct rtnlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: rtnetlink_send
    functionSourceFile: /src/lxc/src/lxc/rtnl.c
    functionUses: 0
    functionsReached:
    - netlink_send
    linkageType: ''
    returnType: int
    signature: int rtnetlink_send(struct rtnl_handler *handler, struct rtnlmsg *rtnlmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/rtnl.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handler
    - request
    - answer
    argTypes:
    - struct rtnl_handler*
    - struct rtnlmsg*
    - struct rtnlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: rtnetlink_transaction
    functionSourceFile: /src/lxc/src/lxc/rtnl.c
    functionUses: 0
    functionsReached:
    - netlink_transaction
    linkageType: ''
    returnType: int
    signature: "int rtnetlink_transaction(struct rtnl_handler *handler, struct rtnlmsg
      *request,\n\t\t\t  struct rtnlmsg *answer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: rtnlmsg_alloc
    functionSourceFile: /src/lxc/src/lxc/rtnl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct rtnlmsg
    signature: struct rtnlmsg *rtnlmsg_alloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/rtnl.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rtnlmsg
    argTypes:
    - struct rtnlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: rtnlmsg_free
    functionSourceFile: /src/lxc/src/lxc/rtnl.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rtnlmsg_free(struct rtnlmsg *rtnlmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/seccomp.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - operation
    - flags
    - args
    argTypes:
    - unsigned int
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: __seccomp
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int __seccomp(unsigned int operation, unsigned int flags,\n\t\t\t
      \ void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/lxc/src/lxc/seccomp.c:49,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/seccomp.c:52,1
    - Dst: seccomp_rule_add
      Src: /src/lxc/src/lxc/seccomp.c:59,1
    - Dst: seccomp_rule_add
      Src: /src/lxc/src/lxc/seccomp.c:61,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:64,1
    - Dst: free
      Src: /src/lxc/src/lxc/seccomp.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - f
    - line
    - line_bufsz
    - conf
    argTypes:
    - FILE*
    - char*
    - size_t*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 71
    functionName: parse_config_v1
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - free
    - seccomp_rule_add
    - sscanf
    - getline
    - ERROR
    linkageType: ''
    returnType: int
    signature: int parse_config_v1(FILE *f, char *line, size_t *line_bufsz, struct
      lxc_conf *conf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SCMP_ACT_ERRNO
      Src: /src/lxc/src/lxc/seccomp.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - action
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 93
    functionName: get_action_name
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - SCMP_ACT_ERRNO
    linkageType: ''
    returnType: char
    signature: char *get_action_name(uint32_t action)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:103,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:105,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/seccomp.c:108,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:110,1
    - Dst: SCMP_ACT_ERRNO
      Src: /src/lxc/src/lxc/seccomp.c:114,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:115,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:117,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:120,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 129
    functionName: get_v2_default_action
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strnequal
    - sscanf
    - SCMP_ACT_ERRNO
    linkageType: ''
    returnType: int32_t
    signature: int32_t get_v2_default_action(char *line)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/seccomp.c:136,1
    - Dst: get_v2_default_action
      Src: /src/lxc/src/lxc/seccomp.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - line
    - def_action
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 156
    functionName: get_v2_action
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - get_v2_default_action
    - strchr
    linkageType: ''
    returnType: int32_t
    signature: int32_t get_v2_action(char *line, uint32_t def_action)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:173,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:173,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:175,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:175,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:177,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:177,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:179,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:179,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:181,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:181,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:183,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:183,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:185,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:185,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: parse_v2_rule_op
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - strequal
    linkageType: ''
    returnType: enum scmp_compare
    signature: enum scmp_compare parse_v2_rule_op(char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/seccomp.c:212,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:214,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/seccomp.c:218,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:220,1
    - Dst: lxc_safe_uint64
      Src: /src/lxc/src/lxc/seccomp.c:224,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:226,1
    - Dst: lxc_safe_uint64
      Src: /src/lxc/src/lxc/seccomp.c:230,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:232,1
    - Dst: parse_v2_rule_op
      Src: /src/lxc/src/lxc/seccomp.c:236,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - key
    - rule_args
    argTypes:
    - char*
    - struct seccomp_v2_rule_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 247
    functionName: get_seccomp_arg_value
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - strchr
    - sscanf
    - parse_v2_rule_op
    - lxc_safe_uint64
    - ERROR
    linkageType: ''
    returnType: int
    signature: int get_seccomp_arg_value(char *key, struct seccomp_v2_rule_args *rule_args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/seccomp.c:261,1
    - Dst: get_v2_action
      Src: /src/lxc/src/lxc/seccomp.c:266,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:268,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/seccomp.c:276,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/seccomp.c:280,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/seccomp.c:281,1
    - Dst: get_seccomp_arg_value
      Src: /src/lxc/src/lxc/seccomp.c:282,1
    - Dst: free
      Src: /src/lxc/src/lxc/seccomp.c:292,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - line
    - def_action
    - rules
    argTypes:
    - char*
    - uint32_t
    - struct seccomp_v2_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 295
    functionName: parse_v2_rules
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - get_seccomp_arg_value
    - free
    - strtok_r
    - get_v2_action
    - strchr
    - strdup
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int parse_v2_rules(char *line, uint32_t def_action,\n\t\t\t  struct
      seccomp_v2_rule *rules)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/lxc/src/lxc/seccomp.c:325,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:326,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:330,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:333,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:335,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:337,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:339,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:341,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:343,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:345,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:347,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:349,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:351,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:353,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 356
    functionName: get_hostarch
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - strnequal
    - SYSERROR
    - strequal
    - uname
    linkageType: ''
    returnType: int
    signature: int get_hostarch(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_init
      Src: /src/lxc/src/lxc/seccomp.c:437,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:439,1
    - Dst: seccomp_attr_set
      Src: /src/lxc/src/lxc/seccomp.c:443,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:446,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:447,1
    - Dst: seccomp_attr_set
      Src: /src/lxc/src/lxc/seccomp.c:452,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/seccomp.c:455,1
    - Dst: seccomp_arch_exist
      Src: /src/lxc/src/lxc/seccomp.c:459,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:463,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:466,1
    - Dst: seccomp_arch_add
      Src: /src/lxc/src/lxc/seccomp.c:470,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:473,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:475,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:478,1
    - Dst: seccomp_arch_remove
      Src: /src/lxc/src/lxc/seccomp.c:480,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:482,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:483,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:486,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:491,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 102
    argCount: 3
    argNames:
    - n_arch
    - default_policy_action
    - needs_merge
    argTypes:
    - enum lxc_hostarch_t
    - uint32_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 495
    functionName: get_new_ctx
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - seccomp_arch_add
    - seccomp_attr_set
    - SYSERROR
    - TRACE
    - seccomp_init
    - seccomp_release
    - SYSWARN
    - seccomp_arch_remove
    - ERROR
    - seccomp_arch_exist
    linkageType: ''
    returnType: scmp_filter_ctx
    signature: "scmp_filter_ctx get_new_ctx(enum lxc_hostarch_t n_arch, uint32_t default_policy_action,\n\t\t\t\t
      \  bool *needs_merge)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_arch_exist
      Src: /src/lxc/src/lxc/seccomp.c:510,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:513,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/seccomp.c:518,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:522,1
    - Dst: seccomp_rule_add_exact
      Src: /src/lxc/src/lxc/seccomp.c:523,1
    - Dst: SCMP_ACT_ERRNO
      Src: /src/lxc/src/lxc/seccomp.c:523,1
    - Dst: SCMP_SYS
      Src: /src/lxc/src/lxc/seccomp.c:524,1
    - Dst: SCMP_A1
      Src: /src/lxc/src/lxc/seccomp.c:525,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:528,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:532,1
    - Dst: seccomp_syscall_resolve_name
      Src: /src/lxc/src/lxc/seccomp.c:536,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:538,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/seccomp.c:544,1
    - Dst: seccomp_syscall_resolve_name_arch
      Src: /src/lxc/src/lxc/seccomp.c:548,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/seccomp.c:549,1
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:553,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:555,1
    - Dst: SCMP_CMP
      Src: /src/lxc/src/lxc/seccomp.c:562,1
    - Dst: SCMP_CMP
      Src: /src/lxc/src/lxc/seccomp.c:567,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:572,1
    - Dst: get_action_name
      Src: /src/lxc/src/lxc/seccomp.c:574,1
    - Dst: seccomp_rule_add_exact_array
      Src: /src/lxc/src/lxc/seccomp.c:576,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:580,1
    - Dst: get_action_name
      Src: /src/lxc/src/lxc/seccomp.c:581,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - arch
    - line
    - ctx
    - rule
    argTypes:
    - uint32_t
    - char*
    - scmp_filter_ctx
    - struct seccomp_v2_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 586
    functionName: do_resolve_add_rule
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - seccomp_rule_add_exact
    - SCMP_ACT_ERRNO
    - memset
    - get_action_name
    - seccomp_syscall_resolve_name_arch
    - strnequal
    - SYSERROR
    - strchr
    - SCMP_CMP
    - INFO
    - DEBUG
    - SCMP_SYS
    - SCMP_A1
    - seccomp_syscall_resolve_name
    - seccomp_rule_add_exact_array
    - seccomp_arch_exist
    linkageType: ''
    returnType: enum lxc_seccomp_rule_status_t
    signature: "enum lxc_seccomp_rule_status_t do_resolve_add_rule(uint32_t arch,
      char *line, scmp_filter_ctx ctx,\n\t\t\t\tstruct seccomp_v2_rule *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:597,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/seccomp.c:597,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:598,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/seccomp.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: is_denylist
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - strnequal
    - STRLITERALLEN
    linkageType: ''
    returnType: bool
    signature: bool is_denylist(const char *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:604,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/seccomp.c:604,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:605,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/seccomp.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: is_allowlist
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - strnequal
    - STRLITERALLEN
    linkageType: ''
    returnType: bool
    signature: bool is_allowlist(const char *type)
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: is_denylist
      Src: /src/lxc/src/lxc/seccomp.c:637,1
    - Dst: is_allowlist
      Src: /src/lxc/src/lxc/seccomp.c:639,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/seccomp.c:640,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/seccomp.c:642,1
    - Dst: get_v2_default_action
      Src: /src/lxc/src/lxc/seccomp.c:644,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/seccomp.c:664,1
    - Dst: seccomp_arch_native
      Src: /src/lxc/src/lxc/seccomp.c:664,1
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:666,1
    - Dst: get_hostarch
      Src: /src/lxc/src/lxc/seccomp.c:670,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:676,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:683,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:690,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:700,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:707,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:718,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:726,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:738,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:745,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:752,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:761,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:768,1
    - Dst: get_new_ctx
      Src: /src/lxc/src/lxc/seccomp.c:775,1
    - Dst: seccomp_reset
      Src: /src/lxc/src/lxc/seccomp.c:784,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:786,1
    - Dst: seccomp_attr_set
      Src: /src/lxc/src/lxc/seccomp.c:790,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:793,1
    - Dst: seccomp_attr_set
      Src: /src/lxc/src/lxc/seccomp.c:798,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/seccomp.c:801,1
    - Dst: getline
      Src: /src/lxc/src/lxc/seccomp.c:806,1
    - Dst: remove_trailing_newlines
      Src: /src/lxc/src/lxc/seccomp.c:813,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:815,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:818,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:819,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:827,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:828,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:835,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:836,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:843,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:844,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:848,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:849,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:860,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:861,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:871,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:872,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:882,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:883,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:893,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:894,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:905,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:906,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:913,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:914,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:921,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:922,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:930,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:931,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:938,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:939,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:946,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:947,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:958,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:959,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:969,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:970,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:980,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/seccomp.c:981,1
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:1001,1
    - Dst: parse_v2_rules
      Src: /src/lxc/src/lxc/seccomp.c:1003,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1005,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1013,1
    - Dst: do_resolve_add_rule
      Src: /src/lxc/src/lxc/seccomp.c:1018,1
    - Dst: seccomp_arch_native
      Src: /src/lxc/src/lxc/seccomp.c:1027,1
    - Dst: do_resolve_add_rule
      Src: /src/lxc/src/lxc/seccomp.c:1028,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:1036,1
    - Dst: seccomp_merge
      Src: /src/lxc/src/lxc/seccomp.c:1039,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1041,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1046,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:1048,1
    - Dst: seccomp_merge
      Src: /src/lxc/src/lxc/seccomp.c:1055,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1057,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1062,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:1064,1
    - Dst: seccomp_merge
      Src: /src/lxc/src/lxc/seccomp.c:1071,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1073,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1078,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:1080,1
    - Dst: free
      Src: /src/lxc/src/lxc/seccomp.c:1085,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1089,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:1094,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:1097,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:1100,1
    - Dst: free
      Src: /src/lxc/src/lxc/seccomp.c:1102,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 332
    argCount: 4
    argNames:
    - f
    - line
    - line_bufsz
    - conf
    argTypes:
    - FILE*
    - char*
    - size_t*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 623
    functionDepth: 4
    functionLinenumber: 623
    functionLinenumberEnd: 1105
    functionName: parse_config_v2
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - seccomp_arch_native
    - strchr
    - is_allowlist
    - get_v2_default_action
    - free
    - log_error
    - get_hostarch
    - memset
    - strequal
    - seccomp_attr_set
    - SYSERROR
    - remove_trailing_newlines
    - TRACE
    - DEBUG
    - seccomp_release
    - is_denylist
    - parse_v2_rules
    - seccomp_reset
    - do_resolve_add_rule
    - INFO
    - getline
    - SYSWARN
    - get_new_ctx
    - seccomp_merge
    - ERROR
    linkageType: ''
    returnType: int
    signature: int parse_config_v2(FILE *f, char *line, size_t *line_bufsz, struct
      lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - line
    - conf
    argTypes:
    - FILE*
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: parse_config_v2
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_config_v2(FILE *f, char *line, struct lxc_conf *conf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fscanf
      Src: /src/lxc/src/lxc/seccomp.c:1127,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1129,1
    - Dst: getline
      Src: /src/lxc/src/lxc/seccomp.c:1133,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1134,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/seccomp.c:1138,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1139,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/seccomp.c:1143,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1144,1
    - Dst: parse_config_v1
      Src: /src/lxc/src/lxc/seccomp.c:1149,1
    - Dst: parse_config_v2
      Src: /src/lxc/src/lxc/seccomp.c:1151,1
    - Dst: free
      Src: /src/lxc/src/lxc/seccomp.c:1154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - f
    - conf
    argTypes:
    - FILE*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1121
    functionDepth: 5
    functionLinenumber: 1121
    functionLinenumberEnd: 1156
    functionName: parse_config
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - fscanf
    - free
    - strstr
    - parse_config_v1
    - parse_config_v2
    - getline
    - ERROR
    linkageType: ''
    returnType: int
    signature: int parse_config(FILE *f, struct lxc_conf *conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/seccomp.c:1176,1
    - Dst: getline
      Src: /src/lxc/src/lxc/seccomp.c:1180,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/seccomp.c:1181,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/seccomp.c:1184,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:1193,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/seccomp.c:1198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1203
    functionName: use_seccomp
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - strnequal
    - INFO
    - sscanf
    - getline
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool use_seccomp(const struct lxc_conf *conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: use_seccomp
      Src: /src/lxc/src/lxc/seccomp.c:1213,1
    - Dst: seccomp_init
      Src: /src/lxc/src/lxc/seccomp.c:1218,1
    - Dst: seccomp_init
      Src: /src/lxc/src/lxc/seccomp.c:1221,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1224,1
    - Dst: seccomp_attr_set
      Src: /src/lxc/src/lxc/seccomp.c:1231,1
    - Dst: seccomp_attr_set
      Src: /src/lxc/src/lxc/seccomp.c:1233,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1237,1
    - Dst: seccomp_attr_set
      Src: /src/lxc/src/lxc/seccomp.c:1242,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/seccomp.c:1245,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/seccomp.c:1249,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1251,1
    - Dst: parse_config
      Src: /src/lxc/src/lxc/seccomp.c:1255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1205
    functionDepth: 6
    functionLinenumber: 1205
    functionLinenumberEnd: 1256
    functionName: lxc_read_seccomp_config
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - seccomp_attr_set
    - SYSERROR
    - parse_config
    - seccomp_init
    - SYSWARN
    - use_seccomp
    - ERROR
    - fopen
    linkageType: ''
    returnType: int
    signature: int lxc_read_seccomp_config(struct lxc_conf *conf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: use_seccomp
      Src: /src/lxc/src/lxc/seccomp.c:1265,1
    - Dst: seccomp_load
      Src: /src/lxc/src/lxc/seccomp.c:1269,1
    - Dst: seccomp_load
      Src: /src/lxc/src/lxc/seccomp.c:1271,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1275,1
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/seccomp.c:1282,1
    - Dst: lxc_log_get_fd
      Src: /src/lxc/src/lxc/seccomp.c:1285,1
    - Dst: seccomp_export_pfc
      Src: /src/lxc/src/lxc/seccomp.c:1287,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/seccomp.c:1290,1
    - Dst: seccomp_notify_fd
      Src: /src/lxc/src/lxc/seccomp.c:1298,1
    - Dst: fd_make_blocking
      Src: /src/lxc/src/lxc/seccomp.c:1304,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/seccomp.c:1305,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1258
    functionDepth: 2
    functionLinenumber: 1258
    functionLinenumberEnd: 1313
    functionName: lxc_seccomp_load
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - seccomp_notify_fd
    - SYSERROR
    - seccomp_load
    - seccomp_export_pfc
    - fd_make_blocking
    - TRACE
    - lxc_log_get_fd
    - SYSWARN
    - use_seccomp
    - log_error_errno
    - lxc_log_trace
    linkageType: ''
    returnType: int
    signature: int lxc_seccomp_load(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1317,1
    - Dst: seccomp_release
      Src: /src/lxc/src/lxc/seccomp.c:1321,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1327,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1328,1
    - Dst: seccomp_notify_free
      Src: /src/lxc/src/lxc/seccomp.c:1329,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - seccomp
    argTypes:
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1334
    functionName: lxc_seccomp_free
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - seccomp_notify_free
    - close_prot_errno_disarm
    - free_disarm
    - seccomp_release
    linkageType: ''
    returnType: void
    signature: void lxc_seccomp_free(struct lxc_seccomp *seccomp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1341,1
    - Dst: lxc_unix_connect_type
      Src: /src/lxc/src/lxc/seccomp.c:1343,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1346,1
    - Dst: lxc_socket_set_timeout
      Src: /src/lxc/src/lxc/seccomp.c:1351,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1352,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/seccomp.c:1355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1357
    functionName: seccomp_notify_reconnect
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - lxc_unix_connect_type
    - close_prot_errno_disarm
    - SYSERROR
    - move_fd
    - lxc_socket_set_timeout
    linkageType: ''
    returnType: int
    signature: int seccomp_notify_reconnect(struct lxc_handler *handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seccomp_notify_respond
      Src: /src/lxc/src/lxc/seccomp.c:1370,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1371,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1374,1
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:1376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - req
    - resp
    - handler
    argTypes:
    - int
    - struct seccomp_notif*
    - struct seccomp_notif_resp*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1377
    functionName: seccomp_notify_default_answer
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - memset
    - seccomp_notify_respond
    - SYSERROR
    - TRACE
    linkageType: ''
    returnType: void
    signature: "void seccomp_notify_default_answer(int fd, struct seccomp_notif *req,\n\t\t\t\t\t
      \ struct seccomp_notif_resp *resp,\n\t\t\t\t\t  struct lxc_handler *handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: move_fd
      Src: /src/lxc/src/lxc/seccomp.c:1388,1
    - Dst: close
      Src: /src/lxc/src/lxc/seccomp.c:1395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1398
    functionName: seccomp_notify_cleanup_handler
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - move_fd
    - close
    linkageType: ''
    returnType: int
    signature: int seccomp_notify_cleanup_handler(int fd, void *data)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/seccomp.c:1413,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/seccomp.c:1427,1
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:1429,1
    - Dst: seccomp_notify_receive
      Src: /src/lxc/src/lxc/seccomp.c:1430,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1433,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1435,1
    - Dst: seccomp_notify_reconnect
      Src: /src/lxc/src/lxc/seccomp.c:1444,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1447,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1448,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1456,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/seccomp.c:1458,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1460,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1461,1
    - Dst: open
      Src: /src/lxc/src/lxc/seccomp.c:1465,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1467,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1468,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/seccomp.c:1472,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1474,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1475,1
    - Dst: open
      Src: /src/lxc/src/lxc/seccomp.c:1479,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1481,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1482,1
    - Dst: seccomp_notify_id_valid
      Src: /src/lxc/src/lxc/seccomp.c:1490,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1492,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1493,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/seccomp.c:1499,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/seccomp.c:1511,1
    - Dst: lxc_abstract_unix_send_fds_iov
      Src: /src/lxc/src/lxc/seccomp.c:1528,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1530,1
    - Dst: seccomp_notify_reconnect
      Src: /src/lxc/src/lxc/seccomp.c:1532,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1539,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1543,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1546,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1547,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1552,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1555,1
    - Dst: lxc_recvmsg_nointr_iov
      Src: /src/lxc/src/lxc/seccomp.c:1559,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1561,1
    - Dst: seccomp_notify_default_answer
      Src: /src/lxc/src/lxc/seccomp.c:1562,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1567,1
    - Dst: seccomp_notify_respond
      Src: /src/lxc/src/lxc/seccomp.c:1572,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1574,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/seccomp.c:1576,1
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:1578,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 135
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1583
    functionName: seccomp_notify_handler
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - memset
    - strnprintf
    - close_prot_errno_disarm
    - memcpy
    - seccomp_notify_respond
    - INTTYPE_TO_STRLEN
    - seccomp_notify_reconnect
    - seccomp_notify_receive
    - SYSERROR
    - strlen
    - log_trace
    - TRACE
    - seccomp_notify_id_valid
    - seccomp_notify_default_answer
    - lxc_recvmsg_nointr_iov
    - lxc_abstract_unix_send_fds_iov
    - ERROR
    - open
    linkageType: ''
    returnType: int
    signature: "int seccomp_notify_handler(int fd, uint32_t events, void *data,\n\t\t\t
      \  struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:1590,1
    - Dst: memset
      Src: /src/lxc/src/lxc/seccomp.c:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1602
    functionName: seccomp_conf_init
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void seccomp_conf_init(struct lxc_conf *conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_unix_connect_type
      Src: /src/lxc/src/lxc/seccomp.c:1614,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1617,1
    - Dst: lxc_socket_set_timeout
      Src: /src/lxc/src/lxc/seccomp.c:1622,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1624,1
    - Dst: __seccomp
      Src: /src/lxc/src/lxc/seccomp.c:1628,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/seccomp.c:1631,1
    - Dst: seccomp_notify_alloc
      Src: /src/lxc/src/lxc/seccomp.c:1635,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1638,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/seccomp.c:1643,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/seccomp.c:1649,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/seccomp.c:1654,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - seccomp
    - descr
    - handler
    argTypes:
    - struct lxc_seccomp*
    - struct lxc_async_descr*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1658
    functionName: lxc_seccomp_setup_proxy
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - lxc_unix_connect_type
    - seccomp_notify_alloc
    - SYSERROR
    - __seccomp
    - lxc_mainloop_add_handler
    - move_fd
    - ERROR
    - lxc_socket_set_timeout
    linkageType: ''
    returnType: int
    signature: "int lxc_seccomp_setup_proxy(struct lxc_seccomp *seccomp,\n\t\t\t    struct
      lxc_async_descr *descr,\n\t\t\t    struct lxc_handler *handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/seccomp.c:1664,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - seccomp
    - socket_fd
    argTypes:
    - struct lxc_seccomp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1672
    functionName: lxc_seccomp_send_notifier_fd
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_send_fds
    - close_prot_errno_disarm
    linkageType: ''
    returnType: int
    signature: int lxc_seccomp_send_notifier_fd(struct lxc_seccomp *seccomp, int socket_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_recv_one_fd
      Src: /src/lxc/src/lxc/seccomp.c:1680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - seccomp
    - socket_fd
    argTypes:
    - struct lxc_seccomp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1688
    functionName: lxc_seccomp_recv_notifier_fd
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_recv_one_fd
    linkageType: ''
    returnType: int
    signature: int lxc_seccomp_recv_notifier_fd(struct lxc_seccomp *seccomp, int socket_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_seccomp_notify_add_listener
      Src: /src/lxc/src/lxc/seccomp.c:1697,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/seccomp.c:1700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - name
    - lxcpath
    - seccomp
    argTypes:
    - char*
    - char*
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1706
    functionName: lxc_seccomp_add_notifier
    functionSourceFile: /src/lxc/src/lxc/seccomp.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - lxc_cmd_seccomp_notify_add_listener
    linkageType: ''
    returnType: int
    signature: "int lxc_seccomp_add_notifier(const char *name, const char *lxcpath,\n\t\t\t
      \    struct lxc_seccomp *seccomp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nlmsg
    argTypes:
    - struct nlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: nlmsg_len
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t nlmsg_len(const struct nlmsg *nlmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlmsg_len
      Src: /src/lxc/src/lxc/nl.c:30,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/nl.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nlmsg
    argTypes:
    - struct nlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: nlmsg_data
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - nlmsg_len
    linkageType: ''
    returnType: void
    signature: void *nlmsg_data(struct nlmsg *nlmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RTA_LENGTH
      Src: /src/lxc/src/lxc/nl.c:40,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/nl.c:41,1
    - Dst: RTA_ALIGN
      Src: /src/lxc/src/lxc/nl.c:41,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:44,1
    - Dst: NLMSG_TAIL
      Src: /src/lxc/src/lxc/nl.c:46,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/nl.c:50,1
    - Dst: RTA_DATA
      Src: /src/lxc/src/lxc/nl.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - nlmsg
    - attr
    - data
    - len
    argTypes:
    - struct nlmsg*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 54
    functionName: nla_put
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - RTA_LENGTH
    - memcpy
    - ret_errno
    - NLMSG_TAIL
    - RTA_DATA
    - NLMSG_ALIGN
    - RTA_ALIGN
    linkageType: ''
    returnType: int
    signature: "int nla_put(struct nlmsg *nlmsg, int attr,\n\t\t   const void *data,
      size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nla_put
      Src: /src/lxc/src/lxc/nl.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - nlmsg
    - attr
    - data
    - size
    argTypes:
    - struct nlmsg*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nla_put_buffer
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - nla_put
    linkageType: ''
    returnType: int
    signature: int nla_put_buffer(struct nlmsg *nlmsg, int attr, const void *data,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nla_put
      Src: /src/lxc/src/lxc/nl.c:63,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/nl.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nlmsg
    - attr
    - string
    argTypes:
    - struct nlmsg*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nla_put_string
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - nla_put
    - strlen
    linkageType: ''
    returnType: int
    signature: int nla_put_string(struct nlmsg *nlmsg, int attr, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nla_put
      Src: /src/lxc/src/lxc/nl.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nlmsg
    - attr
    - value
    argTypes:
    - struct nlmsg*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: nla_put_u32
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - nla_put
    linkageType: ''
    returnType: int
    signature: int nla_put_u32(struct nlmsg *nlmsg, int attr, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nla_put
      Src: /src/lxc/src/lxc/nl.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nlmsg
    - attr
    - value
    argTypes:
    - struct nlmsg*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: nla_put_u16
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - nla_put
    linkageType: ''
    returnType: int
    signature: int nla_put_u16(struct nlmsg *nlmsg, int attr, unsigned short value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nla_put
      Src: /src/lxc/src/lxc/nl.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nlmsg
    - attr
    argTypes:
    - struct nlmsg*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: nla_put_attr
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - nla_put
    linkageType: ''
    returnType: int
    signature: int nla_put_attr(struct nlmsg *nlmsg, int attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NLMSG_TAIL
      Src: /src/lxc/src/lxc/nl.c:85,1
    - Dst: nla_put_attr
      Src: /src/lxc/src/lxc/nl.c:86,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/nl.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nlmsg
    - attr
    argTypes:
    - struct nlmsg*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: nla_begin_nested
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - nla_put_attr
    - ret_set_errno
    - NLMSG_TAIL
    linkageType: ''
    returnType: struct rtattr
    signature: struct rtattr *nla_begin_nested(struct nlmsg *nlmsg, int attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NLMSG_TAIL
      Src: /src/lxc/src/lxc/nl.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nlmsg
    - attr
    argTypes:
    - struct nlmsg*
    - struct rtattr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: nla_end_nested
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - NLMSG_TAIL
    linkageType: ''
    returnType: void
    signature: void nla_end_nested(struct nlmsg *nlmsg, struct rtattr *attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/nl.c:100,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/nl.c:102,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/nl.c:104,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/nl.c:106,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/nl.c:108,1
    - Dst: memset
      Src: /src/lxc/src/lxc/nl.c:110,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/nl.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 115
    functionName: nlmsg_alloc
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - memset
    - ret_set_errno
    - move_ptr
    - NLMSG_ALIGN
    - malloc
    linkageType: ''
    returnType: struct nlmsg
    signature: struct nlmsg *nlmsg_alloc(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/nl.c:121,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/nl.c:124,1
    - Dst: memset
      Src: /src/lxc/src/lxc/nl.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nlmsg
    - len
    argTypes:
    - struct nlmsg*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: nlmsg_reserve
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - memset
    - ret_set_errno
    - NLMSG_ALIGN
    linkageType: ''
    returnType: void
    signature: void *nlmsg_reserve(struct nlmsg *nlmsg, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/nl.c:139,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/nl.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: nlmsg_alloc_reserve
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - nlmsg_alloc
    - ret_set_errno
    linkageType: ''
    returnType: struct nlmsg
    signature: struct nlmsg *nlmsg_alloc_reserve(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/nl.c:151,1
    - Dst: free
      Src: /src/lxc/src/lxc/nl.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nlmsg
    argTypes:
    - struct nlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: nlmsg_free
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void nlmsg_free(struct nlmsg *nlmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/nl.c:172,1
    - Dst: recvmsg
      Src: /src/lxc/src/lxc/nl.c:178,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:183,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - handler
    - nlmsghdr
    argTypes:
    - struct nl_handler*
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 193
    functionName: __netlink_recv
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - memset
    - ret_errno
    - recvmsg
    linkageType: ''
    returnType: int
    signature: int __netlink_recv(struct nl_handler *handler, struct nlmsghdr *nlmsghdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netlink_recv
      Src: /src/lxc/src/lxc/nl.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - answer
    argTypes:
    - struct nl_handler*
    - struct nlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: netlink_rcv
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 1
    functionsReached:
    - __netlink_recv
    linkageType: ''
    returnType: int
    signature: int netlink_rcv(struct nl_handler *handler, struct nlmsg *answer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/nl.c:215,1
    - Dst: sendmsg
      Src: /src/lxc/src/lxc/nl.c:220,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - handler
    - nlmsghdr
    argTypes:
    - struct nl_handler*
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 225
    functionName: __netlink_send
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - memset
    - ret_errno
    - sendmsg
    linkageType: ''
    returnType: int
    signature: int __netlink_send(struct nl_handler *handler, struct nlmsghdr *nlmsghdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netlink_send
      Src: /src/lxc/src/lxc/nl.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - nlmsg
    argTypes:
    - struct nl_handler*
    - struct nlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: netlink_send
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 2
    functionsReached:
    - __netlink_send
    linkageType: ''
    returnType: int
    signature: int netlink_send(struct nl_handler *handler, struct nlmsg *nlmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __netlink_send
      Src: /src/lxc/src/lxc/nl.c:238,1
    - Dst: __netlink_recv
      Src: /src/lxc/src/lxc/nl.c:242,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/nl.c:247,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - handler
    - request
    - answer
    argTypes:
    - struct nl_handler*
    - struct nlmsghdr*
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 253
    functionName: __netlink_transaction
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - __netlink_send
    - NLMSG_DATA
    - __netlink_recv
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int __netlink_transaction(struct nl_handler *handler,\n\t\t\t\t struct
      nlmsghdr *request,\n\t\t\t\t struct nlmsghdr *answer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netlink_transaction
      Src: /src/lxc/src/lxc/nl.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handler
    - request
    - answer
    argTypes:
    - struct nl_handler*
    - struct nlmsg*
    - struct nlmsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: netlink_transaction
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 2
    functionsReached:
    - __netlink_transaction
    linkageType: ''
    returnType: int
    signature: "int netlink_transaction(struct nl_handler *handler,\n\t\t\t       struct
      nlmsg *request, struct nlmsg *answer)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/nl.c:269,1
    - Dst: socket
      Src: /src/lxc/src/lxc/nl.c:272,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:274,1
    - Dst: setsockopt
      Src: /src/lxc/src/lxc/nl.c:276,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:277,1
    - Dst: setsockopt
      Src: /src/lxc/src/lxc/nl.c:279,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:280,1
    - Dst: memset
      Src: /src/lxc/src/lxc/nl.c:282,1
    - Dst: bind
      Src: /src/lxc/src/lxc/nl.c:286,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:287,1
    - Dst: getsockname
      Src: /src/lxc/src/lxc/nl.c:290,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:291,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:294,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:297,1
    - Dst: time
      Src: /src/lxc/src/lxc/nl.c:299,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/nl.c:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - handler
    - protocol
    argTypes:
    - struct nl_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 302
    functionName: netlink_open
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 1
    functionsReached:
    - memset
    - socket
    - getsockname
    - ret_errno
    - setsockopt
    - move_fd
    - time
    - bind
    linkageType: ''
    returnType: int
    signature: int netlink_open(struct nl_handler *handler, int protocol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/nl.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct nl_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: netlink_close
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 1
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void netlink_close(struct nl_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RTA_LENGTH
      Src: /src/lxc/src/lxc/nl.c:312,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/nl.c:315,1
    - Dst: RTA_ALIGN
      Src: /src/lxc/src/lxc/nl.c:315,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/nl.c:316,1
    - Dst: NLMSG_TAIL
      Src: /src/lxc/src/lxc/nl.c:318,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/nl.c:322,1
    - Dst: RTA_DATA
      Src: /src/lxc/src/lxc/nl.c:322,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/nl.c:323,1
    - Dst: RTA_ALIGN
      Src: /src/lxc/src/lxc/nl.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - n
    - maxlen
    - type
    - data
    - alen
    argTypes:
    - struct nlmsghdr*
    - size_t
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 326
    functionName: addattr
    functionSourceFile: /src/lxc/src/lxc/nl.c
    functionUses: 0
    functionsReached:
    - RTA_LENGTH
    - memcpy
    - ret_errno
    - NLMSG_TAIL
    - RTA_DATA
    - NLMSG_ALIGN
    - RTA_ALIGN
    linkageType: ''
    returnType: int
    signature: "int addattr(struct nlmsghdr *n, size_t maxlen, int type, const void
      *data,\n\t    size_t alen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/lxc/src/lxc/string_utils.c:48,1
    - Dst: va_arg
      Src: /src/lxc/src/lxc/string_utils.c:50,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/string_utils.c:55,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:57,1
    - Dst: va_arg
      Src: /src/lxc/src/lxc/string_utils.c:63,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:66,1
    - Dst: free
      Src: /src/lxc/src/lxc/string_utils.c:76,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 78
    functionName: lxc_va_arg_list_to_argv
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - va_copy
    - free
    - calloc
    - va_arg
    - va_end
    - strdup
    linkageType: ''
    returnType: char
    signature: char **lxc_va_arg_list_to_argv(va_list ap, size_t skip, int do_strdup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_va_arg_list_to_argv
      Src: /src/lxc/src/lxc/string_utils.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: lxc_va_arg_list_to_argv_const
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - lxc_va_arg_list_to_argv
    linkageType: ''
    returnType: char
    signature: char **lxc_va_arg_list_to_argv_const(va_list ap, size_t skip)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:90,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:91,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:100,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/string_utils.c:109,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/string_utils.c:110,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:113,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:118,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:125,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:127,1
    - Dst: free
      Src: /src/lxc/src/lxc/string_utils.c:136,1
    - Dst: free
      Src: /src/lxc/src/lxc/string_utils.c:143,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - needle
    - replacement
    - haystack
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 148
    functionName: lxc_string_replace
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 2
    functionsReached:
    - memcpy
    - free
    - strlen
    - strstr
    - calloc
    linkageType: ''
    returnType: char
    signature: "char *lxc_string_replace(const char *needle, const char *replacement,\n\t\t\t
      const char *haystack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/string_utils.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - needle
    - haystack
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: lxc_string_in_array
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 2
    functionsReached:
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool lxc_string_in_array(const char *needle, const char **haystack)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:163,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:169,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:172,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/string_utils.c:177,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/string_utils.c:181,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/string_utils.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - sep
    - parts
    - use_as_prefix
    argTypes:
    - char*
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 187
    functionName: lxc_string_join
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - strlcat
    - calloc
    - strlen
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *lxc_string_join(const char *sep, const char **parts, bool use_as_prefix)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:196,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/string_utils.c:200,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/string_utils.c:201,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/string_utils.c:203,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/string_utils.c:240,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 241
    functionName: lxc_path_simplify
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 3
    functionsReached:
    - is_empty_string
    - move_ptr
    - strdup
    - abspath
    linkageType: ''
    returnType: char
    signature: char *lxc_path_simplify(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:250,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:250,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/string_utils.c:256,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/string_utils.c:261,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/string_utils.c:263,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/string_utils.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 268
    functionName: lxc_append_paths
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - zalloc
    - move_ptr
    - strlen
    - strnprintf
    linkageType: ''
    returnType: char
    signature: char *lxc_append_paths(const char *first, const char *second)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/string_utils.c:279,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/string_utils.c:280,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/string_utils.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - needle
    - haystack
    - _sep
    argTypes:
    - char*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: lxc_string_in_list
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - lxc_iterate_parts
    - strequal
    - must_copy_string
    linkageType: ''
    returnType: bool
    signature: bool lxc_string_in_list(const char *needle, const char *haystack, char
      _sep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:298,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/string_utils.c:300,1
    - Dst: lxc_grow_array
      Src: /src/lxc/src/lxc/string_utils.c:302,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:306,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/string_utils.c:314,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/string_utils.c:328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 331
    functionName: lxc_string_split
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - lxc_free_array
    - must_copy_string
    - calloc
    - realloc
    - lxc_grow_array
    - strdup
    linkageType: ''
    returnType: char
    signature: char **lxc_string_split(const char *string, char _sep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_grow_array
      Src: /src/lxc/src/lxc/string_utils.c:302,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: lxc_iterate_parts
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 3
    functionsReached:
    - lxc_grow_array
    - strdup
    linkageType: ''
    returnType: void
    signature: void lxc_iterate_parts(token, str, sep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_grow_array
      Src: /src/lxc/src/lxc/string_utils.c:338,1
    - Dst: strndup
      Src: /src/lxc/src/lxc/string_utils.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - result
    - start
    - end
    - cap
    - cnt
    argTypes:
    - char***
    - char*
    - char*
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 349
    functionName: complete_word
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - lxc_grow_array
    - strndup
    linkageType: ''
    returnType: bool
    signature: "bool complete_word(char ***result, char *start, char *end, size_t
      *cap,\n\t\t\t  size_t *cnt)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:363,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/string_utils.c:370,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/string_utils.c:381,1
    - Dst: complete_word
      Src: /src/lxc/src/lxc/string_utils.c:382,1
    - Dst: complete_word
      Src: /src/lxc/src/lxc/string_utils.c:390,1
    - Dst: complete_word
      Src: /src/lxc/src/lxc/string_utils.c:399,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:402,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/string_utils.c:404,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 405
    functionName: lxc_string_split_quoted
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - realloc
    - calloc
    - isspace
    - complete_word
    linkageType: ''
    returnType: char
    signature: char **lxc_string_split_quoted(char *string)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:419,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/string_utils.c:421,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:426,1
    - Dst: lxc_grow_array
      Src: /src/lxc/src/lxc/string_utils.c:432,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:436,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/string_utils.c:444,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/string_utils.c:447,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/string_utils.c:451,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 454
    functionName: lxc_string_split_and_trim
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - strlen
    - lxc_free_array
    - must_copy_string
    - calloc
    - realloc
    - lxc_grow_array
    - strdup
    linkageType: ''
    returnType: char
    signature: char **lxc_string_split_and_trim(const char *string, char _sep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:426,1
    - Dst: lxc_grow_array
      Src: /src/lxc/src/lxc/string_utils.c:432,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:436,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 441
    functionName: lxc_iterate_parts
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 3
    functionsReached:
    - strdup
    - lxc_grow_array
    - strlen
    linkageType: ''
    returnType: void
    signature: void lxc_iterate_parts(token, str, sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element_free_fn
      Src: /src/lxc/src/lxc/string_utils.c:461,1
    - Dst: free
      Src: /src/lxc/src/lxc/string_utils.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - array
    - element_free_fn
    argTypes:
    - void**
    - lxc_free_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 464
    functionName: lxc_free_array
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 2
    functionsReached:
    - free
    - element_free_fn
    linkageType: ''
    returnType: void
    signature: void lxc_free_array(void **array, lxc_free_fn element_free_fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/string_utils.c:484,1
    - Dst: memset
      Src: /src/lxc/src/lxc/string_utils.c:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - array
    - capacity
    - new_size
    - capacity_increment
    argTypes:
    - void***
    - size_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 495
    functionName: lxc_grow_array
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 5
    functionsReached:
    - realloc
    - memset
    linkageType: ''
    returnType: int
    signature: int lxc_grow_array(void ***array, size_t *capacity, size_t new_size,
      size_t capacity_increment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - array
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 506
    functionName: lxc_array_len
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t lxc_array_len(void **array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/string_utils.c:514,1
    - Dst: free
      Src: /src/lxc/src/lxc/string_utils.c:518,1
    - Dst: free
      Src: /src/lxc/src/lxc/string_utils.c:519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 528
    functionName: lxc_append_null_to_array
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - realloc
    - free
    linkageType: ''
    returnType: void
    signature: void **lxc_append_null_to_array(void **array, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/string_utils.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - list
    argTypes:
    - void***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 548
    functionName: lxc_append_null_to_list
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int lxc_append_null_to_list(void ***list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_append_null_to_list
      Src: /src/lxc/src/lxc/string_utils.c:555,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - list
    - entry
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 566
    functionName: lxc_append_string
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - lxc_append_null_to_list
    - strdup
    linkageType: ''
    returnType: int
    signature: int lxc_append_string(char ***list, char *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/lxc/src/lxc/string_utils.c:573,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/string_utils.c:580,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - numstr
    - converted
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 592
    functionName: lxc_safe_uint
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 4
    functionsReached:
    - isspace
    - strtoul
    linkageType: ''
    returnType: int
    signature: int lxc_safe_uint(const char *numstr, unsigned int *converted)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/lxc/src/lxc/string_utils.c:599,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/string_utils.c:606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - numstr
    - converted
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 615
    functionName: lxc_safe_ulong
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 1
    functionsReached:
    - isspace
    - strtoul
    linkageType: ''
    returnType: int
    signature: int lxc_safe_ulong(const char *numstr, unsigned long *converted)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/lxc/src/lxc/string_utils.c:622,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/string_utils.c:629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - numstr
    - converted
    - base
    argTypes:
    - char*
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 638
    functionName: lxc_safe_uint64
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 1
    functionsReached:
    - isspace
    - strtoull
    linkageType: ''
    returnType: int
    signature: int lxc_safe_uint64(const char *numstr, uint64_t *converted, int base)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:648,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:651,1
    - Dst: memset
      Src: /src/lxc/src/lxc/string_utils.c:653,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/string_utils.c:655,1
    - Dst: strtoll
      Src: /src/lxc/src/lxc/string_utils.c:659,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:661,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:672,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:674,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:676,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:678,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - numstr
    - converted
    - base
    - residual
    - residual_len
    argTypes:
    - char*
    - int64_t*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 684
    functionName: lxc_safe_int64_residual
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - ret_errno
    - strlen
    - strtoll
    - isspace
    linkageType: ''
    returnType: int
    signature: "int lxc_safe_int64_residual(const char *restrict numstr,\n\t\t\t    int64_t
      *restrict converted, int base,\n\t\t\t    char *restrict residual, size_t residual_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/lxc/src/lxc/string_utils.c:692,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - numstr
    - converted
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 707
    functionName: lxc_safe_int
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 2
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int lxc_safe_int(const char *numstr, int *converted)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/lxc/src/lxc/string_utils.c:715,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - numstr
    - converted
    argTypes:
    - char*
    - long int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 727
    functionName: lxc_safe_long
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 2
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int lxc_safe_long(const char *numstr, long int *converted)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/lxc/src/lxc/string_utils.c:735,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - numstr
    - converted
    argTypes:
    - char*
    - long long int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 747
    functionName: lxc_safe_long_long
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - strtoll
    linkageType: ''
    returnType: int
    signature: int lxc_safe_long_long(const char *numstr, long long int *converted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/string_utils.c:755,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:756,1
    - Dst: va_start
      Src: /src/lxc/src/lxc/string_utils.c:758,1
    - Dst: va_arg
      Src: /src/lxc/src/lxc/string_utils.c:759,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:760,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/string_utils.c:762,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:764,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/string_utils.c:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - len
    - first
    argTypes:
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 773
    functionName: must_concat
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - va_start
    - strlen
    - must_copy_string
    - va_arg
    - va_end
    - must_realloc
    linkageType: ''
    returnType: char
    signature: char *must_concat(size_t *len, const char *first, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:779,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/string_utils.c:783,1
    - Dst: va_start
      Src: /src/lxc/src/lxc/string_utils.c:786,1
    - Dst: va_arg
      Src: /src/lxc/src/lxc/string_utils.c:787,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:788,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/string_utils.c:796,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:799,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:803,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/string_utils.c:806,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - first
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 810
    functionName: must_make_path
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - va_start
    - strlen
    - must_copy_string
    - va_arg
    - va_end
    - must_realloc
    linkageType: ''
    returnType: char
    signature: char *must_make_path(const char *first, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:821,1
    - Dst: va_start
      Src: /src/lxc/src/lxc/string_utils.c:824,1
    - Dst: va_arg
      Src: /src/lxc/src/lxc/string_utils.c:825,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:826,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/string_utils.c:832,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:835,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:839,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/string_utils.c:842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - first
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 846
    functionName: must_append_path
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - va_start
    - strlen
    - va_arg
    - va_end
    - must_realloc
    linkageType: ''
    returnType: char
    signature: char *must_append_path(char *first, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/string_utils.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - entry
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 860
    functionName: must_copy_string
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 5
    functionsReached:
    - strdup
    linkageType: ''
    returnType: char
    signature: char *must_copy_string(const char *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/string_utils.c:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - orig
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 871
    functionName: must_realloc
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 5
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *must_realloc(void *orig, size_t sz)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/string_utils.c:878,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:883,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:885,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:887,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:889,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/string_utils.c:892,1
    - Dst: isalpha
      Src: /src/lxc/src/lxc/string_utils.c:894,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:897,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:901,1
    - Dst: isalpha
      Src: /src/lxc/src/lxc/string_utils.c:904,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:905,1
    - Dst: isalpha
      Src: /src/lxc/src/lxc/string_utils.c:908,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/string_utils.c:914,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/string_utils.c:919,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:919,1
    - Dst: lxc_safe_long_long
      Src: /src/lxc/src/lxc/string_utils.c:921,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/string_utils.c:930,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/string_utils.c:932,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/string_utils.c:934,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:937,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/string_utils.c:939,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.c:940,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - s
    - converted
    argTypes:
    - char*
    - long long int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 943
    functionName: parse_byte_size_string
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 2
    functionsReached:
    - lxc_safe_long_long
    - strcasecmp
    - memcpy
    - ret_errno
    - INTTYPE_TO_STRLEN
    - check_mul_overflow
    - strlen
    - isdigit
    - lxc_char_right_gc
    - isalpha
    linkageType: ''
    returnType: int
    signature: int parse_byte_size_string(const char *s, long long int *converted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 954
    functionName: remove_trailing_newlines
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void remove_trailing_newlines(char *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 969
    functionName: lxc_char_left_gc
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_char_left_gc(const char *buffer, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 986
    functionName: lxc_char_right_gc
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_char_right_gc(const char *buffer, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/string_utils.c:990,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:990,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/string_utils.c:991,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 993
    functionName: lxc_trim_whitespace_in_place
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - lxc_char_right_gc
    - lxc_char_left_gc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *lxc_trim_whitespace_in_place(char *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:997,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1005
    functionName: lxc_is_line_empty
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int lxc_is_line_empty(const char *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/string_utils.c:1009,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1012
    functionName: remove_trailing_slashes
    functionSourceFile: /src/lxc/src/lxc/string_utils.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void remove_trailing_slashes(char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/mount_utils.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - from_dfd
    - from_pathname
    - to_dfd
    - to_pathname
    - flags
    argTypes:
    - int
    - char*
    - int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: move_mount_lxc
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int move_mount_lxc(int from_dfd, const char *from_pathname,\n\t\t\t\t
      int to_dfd, const char *to_pathname,\n\t\t\t\t unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/mount_utils.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dfd
    - filename
    - flags
    argTypes:
    - int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: open_tree_lxc
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int open_tree_lxc(int dfd, const char *filename, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/mount_utils.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fs_name
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: fsopen_lxc
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int fsopen_lxc(const char *fs_name, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/mount_utils.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dfd
    - path
    - flags
    argTypes:
    - int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: fspick_lxc
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int fspick_lxc(int dfd, const char *path, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/mount_utils.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fd
    - cmd
    - key
    - value
    - aux
    argTypes:
    - int
    - unsigned int
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: fsconfig_lxc
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int fsconfig_lxc(int fd, unsigned int cmd, const char *key, const void
      *value, int aux)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/mount_utils.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fs_fd
    - flags
    - attr_flags
    argTypes:
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: fsmount_lxc
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int fsmount_lxc(int fs_fd, unsigned int flags, unsigned int attr_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/mount_utils.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dfd
    - path
    - flags
    - attr
    - size
    argTypes:
    - int
    - char*
    - unsigned int
    - struct mount_attr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: mount_setattr
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int mount_setattr(int dfd, const char *path, unsigned int flags,\n\t\t\t\tstruct
      mount_attr *attr, size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fs_prepare
      Src: /src/lxc/src/lxc/mount_utils.h:289,1
    - Dst: fs_attach
      Src: /src/lxc/src/lxc/mount_utils.h:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 10
    argNames:
    - fs_name
    - dfd_from
    - path_from
    - o_flags_from
    - resolve_flags_from
    - dfd_to
    - path_to
    - o_flags_to
    - resolve_flags_to
    - attr_flags
    argTypes:
    - char*
    - int
    - char*
    - __u64
    - __u64
    - int
    - char*
    - __u64
    - __u64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: fs_mount
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - fs_attach
    - fs_prepare
    linkageType: ''
    returnType: int
    signature: "int fs_mount(const char *fs_name, int dfd_from,\n\t\t\t   const char
      *path_from, __u64 o_flags_from,\n\t\t\t   __u64 resolve_flags_from, int dfd_to,\n\t\t\t
      \  const char *path_to, __u64 o_flags_to,\n\t\t\t   __u64 resolve_flags_to,\n\t\t\t
      \  unsigned int attr_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __fd_bind_mount
      Src: /src/lxc/src/lxc/mount_utils.h:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 13
    argNames:
    - dfd_from
    - path_from
    - o_flags_from
    - resolve_flags_from
    - dfd_to
    - path_to
    - o_flags_to
    - resolve_flags_to
    - attr_set
    - attr_clr
    - propagation
    - userns_fd
    - recursive
    argTypes:
    - int
    - char*
    - __u64
    - __u64
    - int
    - char*
    - __u64
    - __u64
    - __u64
    - __u64
    - __u64
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 314
    functionName: fd_mount_idmapped
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - __fd_bind_mount
    linkageType: ''
    returnType: int
    signature: "int fd_mount_idmapped(int dfd_from, const char *path_from,\n\t\t\t\t
      \   __u64 o_flags_from,\n\t\t\t\t    __u64 resolve_flags_from, int dfd_to,\n\t\t\t\t
      \   const char *path_to, __u64 o_flags_to,\n\t\t\t\t    __u64 resolve_flags_to,
      __u64 attr_set,\n\t\t\t\t    __u64 attr_clr, __u64 propagation,\n\t\t\t\t    int
      userns_fd, bool recursive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __fd_bind_mount
      Src: /src/lxc/src/lxc/mount_utils.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 12
    argNames:
    - dfd_from
    - path_from
    - o_flags_from
    - resolve_flags_from
    - dfd_to
    - path_to
    - o_flags_to
    - resolve_flags_to
    - attr_set
    - attr_clr
    - propagation
    - recursive
    argTypes:
    - int
    - char*
    - __u64
    - __u64
    - int
    - char*
    - __u64
    - __u64
    - __u64
    - __u64
    - __u64
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: fd_bind_mount
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 2
    functionsReached:
    - __fd_bind_mount
    linkageType: ''
    returnType: int
    signature: "int fd_bind_mount(int dfd_from, const char *path_from,\n\t\t\t\t__u64
      o_flags_from, __u64 resolve_flags_from,\n\t\t\t\tint dfd_to, const char *path_to,\n\t\t\t\t__u64
      o_flags_to, __u64 resolve_flags_to,\n\t\t\t\t__u64 attr_set, __u64 attr_clr,\n\t\t\t\t__u64
      propagation, bool recursive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mount_at
      Src: /src/lxc/src/lxc/mount_utils.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fd_from
    - fd_to
    - fs_name
    - flags
    - data
    argTypes:
    - int
    - int
    - char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: mount_fd
    functionSourceFile: /src/lxc/src/lxc/mount_utils.h
    functionUses: 0
    functionsReached:
    - mount_at
    linkageType: ''
    returnType: int
    signature: "int mount_fd(int fd_from, int fd_to, const char *fs_name,\n\t\t\t
      \  unsigned int flags, const void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.h:53,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/file_utils.h:53,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/file_utils.h:57,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/file_utils.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: lxc_read_string_nointr
    functionSourceFile: /src/lxc/src/lxc/file_utils.h
    functionUses: 0
    functionsReached:
    - STRARRAYLEN
    - ret_errno
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: "int lxc_read_string_nointr(int fd, char *buf,\n\t\t\t\t\t\t\t  size_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __fd_to_fd
      Src: /src/lxc/src/lxc/file_utils.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: fd_to_fd
    functionSourceFile: /src/lxc/src/lxc/file_utils.h
    functionUses: 2
    functionsReached:
    - __fd_to_fd
    linkageType: ''
    returnType: int
    signature: int fd_to_fd(int from, int to)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/lxc/src/lxc/file_utils.h:132,1
    - Dst: lxc_fd_cloexec
      Src: /src/lxc/src/lxc/file_utils.h:136,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: dup_cloexec
    functionSourceFile: /src/lxc/src/lxc/file_utils.h
    functionUses: 0
    functionsReached:
    - lxc_fd_cloexec
    - dup
    - move_fd
    linkageType: ''
    returnType: int
    signature: int dup_cloexec(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_init
      Src: /src/lxc/src/lxc/execute.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - handler
    - data
    argTypes:
    - struct lxc_handler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: execute_start
    functionSourceFile: /src/lxc/src/lxc/execute.c
    functionUses: 0
    functionsReached:
    - lxc_container_init
    linkageType: ''
    returnType: int
    signature: int execute_start(struct lxc_handler *handler, void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/execute.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - data
    argTypes:
    - struct lxc_handler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: execute_post_start
    functionSourceFile: /src/lxc/src/lxc/execute.c
    functionUses: 0
    functionsReached:
    - NOTICE
    linkageType: ''
    returnType: int
    signature: int execute_post_start(struct lxc_handler *handler, void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/execute.c:49,1
    - Dst: __lxc_start
      Src: /src/lxc/src/lxc/execute.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - name
    - argv
    - quiet
    - handler
    - lxcpath
    - daemonize
    - error_num
    argTypes:
    - char*
    - char*[]
    - int
    - struct lxc_handler*
    - char*
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: lxc_execute
    functionSourceFile: /src/lxc/src/lxc/execute.c
    functionUses: 0
    functionsReached:
    - TRACE
    - __lxc_start
    linkageType: ''
    returnType: int
    signature: "int lxc_execute(const char *name, char *const argv[], int quiet,\n\t\tstruct
      lxc_handler *handler, const char *lxcpath,\n\t\tbool daemonize, int *error_num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/lxc/src/lxc/parse.c:30,1
    - Dst: mmap
      Src: /src/lxc/src/lxc/parse.c:38,1
    - Dst: munmap
      Src: /src/lxc/src/lxc/parse.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - addr
    - length
    - prot
    - flags
    - fd
    - offset
    argTypes:
    - void*
    - size_t
    - int
    - int
    - int
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: lxc_strmmap
    functionSourceFile: /src/lxc/src/lxc/parse.c
    functionUses: 0
    functionsReached:
    - munmap
    - mmap
    linkageType: ''
    returnType: void
    signature: "void *lxc_strmmap(void *addr, size_t length, int prot, int flags,
      int fd,\n\t\t  off_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/lxc/src/lxc/parse.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: lxc_strmunmap
    functionSourceFile: /src/lxc/src/lxc/parse.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: int lxc_strmunmap(void *addr, size_t length)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/parse.c:59,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/parse.c:62,1
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/parse.c:63,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:70,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/parse.c:74,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/lxc/parse.c:75,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:77,1
    - Dst: open
      Src: /src/lxc/src/lxc/parse.c:82,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:84,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/parse.c:88,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:90,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:95,1
    - Dst: __fd_to_fd
      Src: /src/lxc/src/lxc/parse.c:100,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:102,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/parse.c:106,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:108,1
    - Dst: lseek
      Src: /src/lxc/src/lxc/parse.c:113,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:115,1
    - Dst: mmap
      Src: /src/lxc/src/lxc/parse.c:120,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:123,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/parse.c:128,1
    - Dst: callback
      Src: /src/lxc/src/lxc/parse.c:129,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/parse.c:135,1
    - Dst: munmap
      Src: /src/lxc/src/lxc/parse.c:142,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:143,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 3
    argNames:
    - file
    - callback
    - data
    argTypes:
    - char*
    - lxc_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 149
    functionName: lxc_file_for_each_line_mmap
    functionSourceFile: /src/lxc/src/lxc/parse.c
    functionUses: 0
    functionsReached:
    - mmap
    - memfd_create
    - munmap
    - lxc_make_tmpfile
    - lxc_iterate_parts
    - SYSERROR
    - TRACE
    - fstat
    - ERROR
    - __fd_to_fd
    - lseek
    - lxc_write_nointr
    - open
    - callback
    linkageType: ''
    returnType: int
    signature: int lxc_file_for_each_line_mmap(const char *file, lxc_file_cb callback,
      void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/parse.c:158,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/parse.c:160,1
    - Dst: getline
      Src: /src/lxc/src/lxc/parse.c:164,1
    - Dst: callback
      Src: /src/lxc/src/lxc/parse.c:165,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/parse.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - file
    - callback
    - data
    argTypes:
    - char*
    - lxc_file_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 177
    functionName: lxc_file_for_each_line
    functionSourceFile: /src/lxc/src/lxc/parse.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - getline
    - ERROR
    - fopen
    - callback
    linkageType: ''
    returnType: int
    signature: int lxc_file_for_each_line(const char *file, lxc_file_cb callback,
      void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: default_cleanup_handler
    functionSourceFile: /src/lxc/src/lxc/mainloop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int default_cleanup_handler(int fd, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/open_utils.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dfd
    - filename
    - how
    - size
    argTypes:
    - int
    - char*
    - struct open_how*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: openat2
    functionSourceFile: /src/lxc/src/lxc/open_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int openat2(int dfd, const char *filename, struct open_how *how, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: likely
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: unlikely
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/lxc/src/lxc/compiler.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - overflow
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: __must_check::__must_check_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool __must_check __must_check_overflow(bool overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: is_signed_type
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_signed_type(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: __type_half_max
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __type_half_max(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: type_max
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: type_max(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: type_min
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: type_min(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: is_non_negative
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_non_negative(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: is_negative
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_negative(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: check_add_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_add_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: check_sub_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_sub_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: check_mul_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_mul_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: __unsigned_add_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __unsigned_add_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: __unsigned_sub_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __unsigned_sub_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: __unsigned_mul_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __unsigned_mul_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: __signed_add_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __signed_add_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: __signed_sub_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __signed_sub_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: __signed_mul_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __signed_mul_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: check_add_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_add_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: check_sub_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_sub_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: check_mul_overflow
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_mul_overflow(a, b, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: __access_r
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __access_r(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: __access_r_nosize
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __access_r_nosize(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: __access_w
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __access_w(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: __access_rw
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __access_rw(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: __same_type
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __same_type(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - condition
    - ','
    - msg
    - ','
    - prefix
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: __compiletime_assert
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __compiletime_assert(condition, msg, prefix, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - condition
    - ','
    - msg
    - ','
    - prefix
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: _compiletime_assert
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _compiletime_assert(condition, msg, prefix, suffix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - condition
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: compiletime_assert
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compiletime_assert(condition, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: BUILD_BUG_ON_MSG
    functionSourceFile: /src/lxc/src/lxc/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON_MSG(cond, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: IS_ERR_VALUE
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ERR_VALUE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: ERR_PTR
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ERR_PTR(long error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: PTR_ERR
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long PTR_ERR(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR_VALUE
      Src: /src/lxc/src/lxc/error_utils.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: IS_ERR
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached:
    - IS_ERR_VALUE
    linkageType: ''
    returnType: long
    signature: long IS_ERR(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR_VALUE
      Src: /src/lxc/src/lxc/error_utils.h:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: IS_ERR_OR_NULL
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached:
    - IS_ERR_VALUE
    linkageType: ''
    returnType: long
    signature: long IS_ERR_OR_NULL(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: ERR_CAST
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ERR_CAST(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR
      Src: /src/lxc/src/lxc/error_utils.h:43,1
    - Dst: PTR_ERR
      Src: /src/lxc/src/lxc/error_utils.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: PTR_RET
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached:
    - PTR_ERR
    - IS_ERR
    linkageType: ''
    returnType: int
    signature: int PTR_RET(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/lxc/src/lxc/error_utils.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ERRNO_IS_NOT_SUPPORTED
    functionSourceFile: /src/lxc/src/lxc/error_utils.h
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: bool
    signature: bool ERRNO_IS_NOT_SUPPORTED(int r)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/utils.c:76,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:78,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/utils.c:80,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:84,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:85,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:88,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:90,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:95,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/utils.c:96,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:100,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/utils.c:104,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:106,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:109,1
    - Dst: lstat
      Src: /src/lxc/src/lxc/utils.c:118,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:120,1
    - Dst: btrfs_try_remove_subvol
      Src: /src/lxc/src/lxc/utils.c:126,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:127,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/utils.c:131,1
    - Dst: _recursive_rmdir
      Src: /src/lxc/src/lxc/utils.c:132,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/utils.c:135,1
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:139,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/utils.c:143,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:145,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/utils.c:147,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:149,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/utils.c:152,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:154,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/utils.c:161,1
    - Dst: btrfs_try_remove_subvol
      Src: /src/lxc/src/lxc/utils.c:161,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:162,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 74
    argCount: 5
    argNames:
    - dirname
    - pdev
    - exclude
    - level
    - onedev
    argTypes:
    - char*
    - dev_t
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 167
    functionName: _recursive_rmdir
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached:
    - opendir
    - readdir
    - strnprintf
    - strequal
    - btrfs_try_remove_subvol
    - log_error
    - SYSERROR
    - S_ISDIR
    - _recursive_rmdir
    - INFO
    - lstat
    - unlink
    - rmdir
    - ioctl
    - ERROR
    - open
    linkageType: ''
    returnType: int
    signature: "int _recursive_rmdir(const char *dirname, dev_t pdev,\n\t\t\t    const
      char *exclude, int level, bool onedev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_fs_type
      Src: /src/lxc/src/lxc/utils.c:175,1
    - Dst: has_fs_type
      Src: /src/lxc/src/lxc/utils.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: is_native_overlayfs
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - has_fs_type
    linkageType: ''
    returnType: bool
    signature: bool is_native_overlayfs(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_native_overlayfs
      Src: /src/lxc/src/lxc/utils.c:185,1
    - Dst: lstat
      Src: /src/lxc/src/lxc/utils.c:188,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:192,1
    - Dst: _recursive_rmdir
      Src: /src/lxc/src/lxc/utils.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - path
    - exclude
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 196
    functionName: lxc_rmdir_onedev
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - lstat
    - log_error_errno
    - is_native_overlayfs
    - _recursive_rmdir
    linkageType: ''
    returnType: int
    signature: int lxc_rmdir_onedev(const char *path, const char *exclude)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/utils.c:207,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/utils.c:210,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/utils.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - val
    - arg
    - base
    argTypes:
    - unsigned short*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: get_u16
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strtoul
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int get_u16(unsigned short *val, const char *arg, int base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/lxc/src/lxc/utils.c:224,1
    - Dst: strspn
      Src: /src/lxc/src/lxc/utils.c:231,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/utils.c:232,1
    - Dst: strndup
      Src: /src/lxc/src/lxc/utils.c:234,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/utils.c:236,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/utils.c:238,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - dir
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 245
    functionName: lxc_mkdir_p
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached:
    - strspn
    - strndup
    - ret_set_errno
    - access
    - strcspn
    - log_error_errno
    - mkdir
    linkageType: ''
    returnType: int
    signature: int lxc_mkdir_p(const char *dir, mode_t mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/lxc/src/lxc/utils.c:256,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/utils.c:257,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/utils.c:257,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/utils.c:258,1
    - Dst: getenv
      Src: /src/lxc/src/lxc/utils.c:260,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/utils.c:262,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:264,1
    - Dst: getenv
      Src: /src/lxc/src/lxc/utils.c:265,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:267,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:269,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/utils.c:270,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:274,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/utils.c:276,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/utils.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 279
    functionName: get_rundir
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - stat
    - strnprintf
    - getegid
    - log_error
    - ret_set_errno
    - getenv
    - strlen
    - move_ptr
    - INFO
    - geteuid
    - strdup
    - malloc
    linkageType: ''
    returnType: char
    signature: char *get_rundir(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/lxc/src/lxc/utils.c:286,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/utils.c:297,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/utils.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: wait_for_pid
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 13
    functionsReached:
    - waitpid
    - WEXITSTATUS
    - WIFEXITED
    linkageType: ''
    returnType: int
    signature: int wait_for_pid(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: waitid
      Src: /src/lxc/src/lxc/utils.c:311,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/utils.c:314,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/utils.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - pidfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: wait_for_pidfd
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - waitid
    - WIFEXITED
    - WEXITSTATUS
    linkageType: ''
    returnType: int
    signature: int wait_for_pidfd(int pidfd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/lxc/src/lxc/utils.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: lxc_wait_for_pid_status
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - waitpid
    linkageType: ''
    returnType: int
    signature: int lxc_wait_for_pid_status(pid_t pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_wait_for_pid_status
      Src: /src/lxc/src/lxc/utils.c:340,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:342,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/lxc/utils.c:343,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:344,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/utils.c:344,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/utils.c:345,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:346,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/utils.c:347,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:348,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/utils.c:348,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: wait_exited
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - WIFSIGNALED
    - WIFEXITED
    - lxc_wait_for_pid_status
    - log_error
    - TRACE
    - WEXITSTATUS
    - WTERMSIG
    linkageType: ''
    returnType: bool
    signature: bool wait_exited(pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/lxc/src/lxc/utils.c:363,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:365,1
    - Dst: EVP_MD_CTX_create
      Src: /src/lxc/src/lxc/utils.c:367,1
    - Dst: EVP_DigestInit_ex
      Src: /src/lxc/src/lxc/utils.c:368,1
    - Dst: EVP_DigestUpdate
      Src: /src/lxc/src/lxc/utils.c:369,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/lxc/src/lxc/utils.c:370,1
    - Dst: EVP_MD_CTX_destroy
      Src: /src/lxc/src/lxc/utils.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - buf
    - buflen
    - md_value
    - md_len
    argTypes:
    - char*
    - int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 374
    functionName: do_sha1_hash
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    - log_error
    - EVP_MD_CTX_destroy
    - EVP_get_digestbyname
    - EVP_MD_CTX_create
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: int
    signature: "int do_sha1_hash(const char *buf, int buflen, unsigned char *md_value,\n\t\t\tunsigned
      int *md_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen_cloexec
      Src: /src/lxc/src/lxc/utils.c:387,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:389,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/utils.c:391,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:392,1
    - Dst: ftell
      Src: /src/lxc/src/lxc/utils.c:394,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:396,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/utils.c:398,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:399,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/utils.c:401,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:403,1
    - Dst: fread
      Src: /src/lxc/src/lxc/utils.c:405,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:407,1
    - Dst: do_sha1_hash
      Src: /src/lxc/src/lxc/utils.c:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - fnam
    - digest
    - md_len
    argTypes:
    - char*
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 412
    functionName: sha1sum_file
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - do_sha1_hash
    - fopen_cloexec
    - fseek
    - fread
    - log_error_errno
    - ftell
    - malloc
    linkageType: ''
    returnType: int
    signature: int sha1sum_file(char *fnam, unsigned char *digest, unsigned int *md_len)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/lxc/src/lxc/utils.c:422,1
    - Dst: fork
      Src: /src/lxc/src/lxc/utils.c:426,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:433,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/utils.c:437,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/utils.c:439,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:441,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/utils.c:442,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/utils.c:447,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/utils.c:449,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:450,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/utils.c:452,1
    - Dst: sigfillset
      Src: /src/lxc/src/lxc/utils.c:455,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/utils.c:457,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/utils.c:459,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/utils.c:461,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/utils.c:464,1
    - Dst: execl
      Src: /src/lxc/src/lxc/utils.c:465,1
    - Dst: execl
      Src: /src/lxc/src/lxc/utils.c:467,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/utils.c:469,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:472,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/utils.c:475,1
    - Dst: memset
      Src: /src/lxc/src/lxc/utils.c:479,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/utils.c:487,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:499,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:502,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/utils.c:505,1
    - Dst: free
      Src: /src/lxc/src/lxc/utils.c:508,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 511
    functionName: lxc_popen
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - sigfillset
    - pthread_sigmask
    - memset
    - fcntl
    - fclose
    - close
    - execl
    - free
    - file_exists
    - pipe2
    - _exit
    - dup2
    - fork
    - fdopen
    - malloc
    linkageType: ''
    returnType: struct lxc_popen_FILE
    signature: struct lxc_popen_FILE *lxc_popen(const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/lxc/src/lxc/utils.c:522,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/utils.c:525,1
    - Dst: free
      Src: /src/lxc/src/lxc/utils.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - fp
    argTypes:
    - struct lxc_popen_FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 532
    functionName: lxc_pclose
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached:
    - free
    - waitpid
    - fclose
    linkageType: ''
    returnType: int
    signature: int lxc_pclose(struct lxc_popen_FILE *fp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_popen
      Src: /src/lxc/src/lxc/utils.c:540,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:542,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/utils.c:544,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:546,1
    - Dst: fileno
      Src: /src/lxc/src/lxc/utils.c:548,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:550,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/utils.c:555,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/utils.c:558,1
    - Dst: lxc_pclose
      Src: /src/lxc/src/lxc/utils.c:565,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/utils.c:565,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:567,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/utils.c:568,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/utils.c:568,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:569,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/utils.c:569,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/lxc/utils.c:570,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/utils.c:571,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/utils.c:571,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 574
    functionName: run_buffer
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - WIFSIGNALED
    - log_error
    - move_ptr
    - fileno
    - WEXITSTATUS
    - lxc_pclose
    - DEBUG
    - lxc_read_nointr
    - zalloc
    - log_error_errno
    - lxc_popen
    - WTERMSIG
    linkageType: ''
    returnType: int
    signature: int run_buffer(char *buffer)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:585,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:588,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:591,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/utils.c:593,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:595,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:602,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:605,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:608,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/utils.c:615,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:620,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:622,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:624,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/utils.c:627,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:629,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:631,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/utils.c:633,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:635,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:636,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:638,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/utils.c:644,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:646,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:647,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:651,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/utils.c:652,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:654,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:655,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:656,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/utils.c:657,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:659,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:660,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:661,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/utils.c:664,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:666,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:667,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/utils.c:669,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:671,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:672,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:680,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:682,1
    - Dst: run_buffer
      Src: /src/lxc/src/lxc/utils.c:686,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 6
    argNames:
    - name
    - hook_version
    - section
    - script
    - hookname
    - argv
    argTypes:
    - char*
    - unsigned int
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 687
    functionName: run_script_argv
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - setenv
    - strequal
    - STRLITERALLEN
    - strlen
    - run_buffer
    - INFO
    - TRACE
    - zalloc
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int run_script_argv(const char *name, unsigned int hook_version,\n\t\t
      \   const char *section, const char *script,\n\t\t    const char *hookname,
      char **argv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:697,1
    - Dst: va_start
      Src: /src/lxc/src/lxc/utils.c:700,1
    - Dst: va_arg
      Src: /src/lxc/src/lxc/utils.c:701,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:702,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/utils.c:703,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/utils.c:705,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:706,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:707,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:708,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/utils.c:714,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:715,1
    - Dst: va_start
      Src: /src/lxc/src/lxc/utils.c:719,1
    - Dst: va_arg
      Src: /src/lxc/src/lxc/utils.c:720,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:723,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/utils.c:725,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/utils.c:730,1
    - Dst: run_buffer
      Src: /src/lxc/src/lxc/utils.c:732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - name
    - section
    - script
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 733
    functionName: run_script
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - STRLITERALLEN
    - va_start
    - strlen
    - run_buffer
    - INFO
    - va_end
    - va_arg
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int run_script(const char *name, const char *section, const char *script,
      ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/lxc/src/lxc/utils.c:741,1
    - Dst: getpid
      Src: /src/lxc/src/lxc/utils.c:741,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/utils.c:743,1
    - Dst: fread
      Src: /src/lxc/src/lxc/utils.c:745,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/utils.c:747,1
    - Dst: srand
      Src: /src/lxc/src/lxc/utils.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - srand_it
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 754
    functionName: randseed
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 2
    functionsReached:
    - getpid
    - SYSDEBUG
    - srand
    - fread
    - time
    - fopen
    linkageType: ''
    returnType: int
    signature: int randseed(bool srand_it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/utils.c:763,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:765,1
    - Dst: getline
      Src: /src/lxc/src/lxc/utils.c:767,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/utils.c:768,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - orig
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 776
    functionName: get_ns_uid
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - sscanf
    - getline
    - log_error_errno
    - fopen
    linkageType: ''
    returnType: uid_t
    signature: uid_t get_ns_uid(uid_t orig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/utils.c:785,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:787,1
    - Dst: getline
      Src: /src/lxc/src/lxc/utils.c:789,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/utils.c:790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - orig
    argTypes:
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 798
    functionName: get_ns_gid
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - sscanf
    - getline
    - log_error_errno
    - fopen
    linkageType: ''
    returnType: gid_t
    signature: gid_t get_ns_gid(gid_t orig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exists_dir_at
      Src: /src/lxc/src/lxc/utils.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 803
    functionName: dir_exists
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - exists_dir_at
    linkageType: ''
    returnType: bool
    signature: bool dir_exists(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - len
    - hval
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 826
    functionName: fnv_64a_buf
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fnv_64a_buf(void *buf, size_t len, uint64_t hval)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/utils.c:835,1
    - Dst: getline
      Src: /src/lxc/src/lxc/utils.c:839,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/utils.c:843,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/utils.c:848,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:853,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/utils.c:855,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/utils.c:856,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 862
    functionName: is_shared_mountpoint
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strequal
    - strstr
    - strchr
    - getline
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool is_shared_mountpoint(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_shared_mountpoint
      Src: /src/lxc/src/lxc/utils.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 877
    functionName: detect_shared_rootfs
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - is_shared_mountpoint
    linkageType: ''
    returnType: int
    signature: int detect_shared_rootfs(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/utils.c:883,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/utils.c:884,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:888,1
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:892,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:894,1
    - Dst: setns
      Src: /src/lxc/src/lxc/utils.c:896,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/utils.c:899,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pid
    - ns
    - optional
    argTypes:
    - pid_t
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 905
    functionName: try_switch_to_ns
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached:
    - strnprintf
    - INTTYPE_TO_STRLEN
    - STRLITERALLEN
    - setns
    - log_trace_errno
    - log_error_errno
    - open
    linkageType: ''
    returnType: bool
    signature: bool try_switch_to_ns(pid_t pid, const char *ns, bool optional)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen_cached
      Src: /src/lxc/src/lxc/utils.c:921,1
    - Dst: getline
      Src: /src/lxc/src/lxc/utils.c:925,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/utils.c:930,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/utils.c:934,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:938,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/utils.c:940,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/utils.c:941,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 947
    functionName: detect_ramfs_rootfs
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 2
    functionsReached:
    - strequal
    - strnequal
    - strchr
    - getline
    - fopen_cached
    linkageType: ''
    returnType: bool
    signature: bool detect_ramfs_rootfs(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/lxc/src/lxc/utils.c:956,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/utils.c:960,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/utils.c:964,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:966,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:968,1
    - Dst: access
      Src: /src/lxc/src/lxc/utils.c:972,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/utils.c:973,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - cmd
    - rootfs
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 977
    functionName: on_path
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - getenv
    - access
    - lxc_iterate_parts
    - strdup
    linkageType: ''
    returnType: char
    signature: char *on_path(const char *cmd, const char *rootfs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/lxc/src/lxc/utils.c:991,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/utils.c:992,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:994,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:999,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:999,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:999,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/utils.c:1001,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1005,1
    - Dst: free
      Src: /src/lxc/src/lxc/utils.c:1007,1
    - Dst: access
      Src: /src/lxc/src/lxc/utils.c:1011,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1012,1
    - Dst: free
      Src: /src/lxc/src/lxc/utils.c:1013,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - t
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1018
    functionName: get_template_path
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - free
    - SYSERROR
    - access
    - strlen
    - strdup
    - malloc
    linkageType: ''
    returnType: char
    signature: char *get_template_path(const char *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - path
    - offsetp
    - fulllen
    argTypes:
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1043
    functionName: get_nextpath
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_nextpath(char *path, int *offsetp, int fulllen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:1051,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/utils.c:1056,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - subdir
    - dir
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1066
    functionName: is_subdir
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnequal
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool is_subdir(const char *subdir, const char *dir, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/lxc/src/lxc/utils.c:1077,1
    - Dst: S_ISLNK
      Src: /src/lxc/src/lxc/utils.c:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1085
    functionName: check_symlink
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - fstat
    linkageType: ''
    returnType: int
    signature: int check_symlink(int fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: openat
      Src: /src/lxc/src/lxc/utils.c:1095,1
    - Dst: openat
      Src: /src/lxc/src/lxc/utils.c:1106,1
    - Dst: check_symlink
      Src: /src/lxc/src/lxc/utils.c:1112,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - dirfd
    - nextpath
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1121
    functionName: open_if_safe
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - check_symlink
    - openat
    - close
    linkageType: ''
    returnType: int
    signature: int open_if_safe(int dirfd, const char *nextpath)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:1141,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:1144,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/utils.c:1145,1
    - Dst: is_subdir
      Src: /src/lxc/src/lxc/utils.c:1146,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:1147,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/utils.c:1165,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:1166,1
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:1175,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1177,1
    - Dst: get_nextpath
      Src: /src/lxc/src/lxc/utils.c:1185,1
    - Dst: open_if_safe
      Src: /src/lxc/src/lxc/utils.c:1188,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1190,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1196,1
    - Dst: free
      Src: /src/lxc/src/lxc/utils.c:1203,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - target
    - prefix_skip
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1136
    functionDepth: 2
    functionLinenumber: 1136
    functionLinenumberEnd: 1205
    functionName: open_without_symlink
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - close
    - free
    - strlen
    - SYSERROR
    - is_subdir
    - get_nextpath
    - strdup
    - open_if_safe
    - ERROR
    - open
    linkageType: ''
    returnType: int
    signature: int open_without_symlink(const char *target, const char *prefix_skip)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: openat2
      Src: /src/lxc/src/lxc/utils.c:1222,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1225,1
    - Dst: openat2
      Src: /src/lxc/src/lxc/utils.c:1232,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:1234,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1235,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/utils.c:1239,1
    - Dst: mount
      Src: /src/lxc/src/lxc/utils.c:1240,1
    - Dst: mount
      Src: /src/lxc/src/lxc/utils.c:1242,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 6
    argNames:
    - beneath_fd
    - src
    - dst
    - fstype
    - flags
    - data
    argTypes:
    - int
    - char*
    - char*
    - char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1245
    functionName: __safe_mount_beneath_at
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - is_empty_string
    - openat2
    - log_error_errno
    - mount
    linkageType: ''
    returnType: int
    signature: "int __safe_mount_beneath_at(int beneath_fd, const char *src, const
      char *dst, const char *fstype,\n\t\t\t    unsigned int flags, const void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: openat
      Src: /src/lxc/src/lxc/utils.c:1253,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:1255,1
    - Dst: __safe_mount_beneath_at
      Src: /src/lxc/src/lxc/utils.c:1257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - beneath
    - src
    - dst
    - fstype
    - flags
    - data
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1247
    functionDepth: 2
    functionLinenumber: 1247
    functionLinenumberEnd: 1258
    functionName: safe_mount_beneath
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - __safe_mount_beneath_at
    - openat
    linkageType: ''
    returnType: int
    signature: "int safe_mount_beneath(const char *beneath, const char *src, const
      char *dst, const char *fstype,\n\t\t       unsigned int flags, const void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __safe_mount_beneath_at
      Src: /src/lxc/src/lxc/utils.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - beneath_fd
    - src
    - dst
    - fstype
    - flags
    - data
    argTypes:
    - int
    - char*
    - char*
    - char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1260
    functionDepth: 2
    functionLinenumber: 1260
    functionLinenumberEnd: 1264
    functionName: safe_mount_beneath_at
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 2
    functionsReached:
    - __safe_mount_beneath_at
    linkageType: ''
    returnType: int
    signature: "int safe_mount_beneath_at(int beneath_fd, const char *src, const char
      *dst, const char *fstype,\n\t\t\t  unsigned int flags, const void *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:1288,1
    - Dst: open_without_symlink
      Src: /src/lxc/src/lxc/utils.c:1290,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1294,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1296,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:1297,1
    - Dst: open_without_symlink
      Src: /src/lxc/src/lxc/utils.c:1303,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1307,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1314,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1317,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1319,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:1320,1
    - Dst: mount
      Src: /src/lxc/src/lxc/utils.c:1324,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1327,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1329,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1332,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 6
    argNames:
    - src
    - dest
    - fstype
    - flags
    - data
    - rootfs
    argTypes:
    - char*
    - char*
    - char*
    - unsigned long
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1337
    functionName: safe_mount
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - open_without_symlink
    - close
    - SYSERROR
    - INFO
    - ERROR
    - mount
    linkageType: ''
    returnType: int
    signature: "int safe_mount(const char *src, const char *dest, const char *fstype,\n\t\tunsigned
      long flags, const void *data, const char *rootfs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:1341,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1346
    functionName: open_devnull
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached:
    - SYSERROR
    - open
    linkageType: ''
    returnType: int
    signature: int open_devnull(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dup2
      Src: /src/lxc/src/lxc/utils.c:1355,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/utils.c:1359,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/utils.c:1363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1368
    functionName: set_stdfds
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - dup2
    linkageType: ''
    returnType: int
    signature: int set_stdfds(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open_devnull
      Src: /src/lxc/src/lxc/utils.c:1375,1
    - Dst: set_stdfds
      Src: /src/lxc/src/lxc/utils.c:1377,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1382
    functionName: null_stdfds
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - set_stdfds
    - close
    - open_devnull
    linkageType: ''
    returnType: int
    signature: int null_stdfds(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1397,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/utils.c:1401,1
    - Dst: getline
      Src: /src/lxc/src/lxc/utils.c:1405,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/utils.c:1408,1
    - Dst: lxc_trim_whitespace_in_place
      Src: /src/lxc/src/lxc/utils.c:1411,1
    - Dst: lxc_safe_uint64
      Src: /src/lxc/src/lxc/utils.c:1412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - pid
    - signal
    argTypes:
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1423
    functionName: task_blocks_signal
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 2
    functionsReached:
    - strnprintf
    - strnequal
    - lxc_trim_whitespace_in_place
    - getline
    - lxc_safe_uint64
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool task_blocks_signal(pid_t pid, int signal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1436,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:1437,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:1438,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/utils.c:1440,1
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:1442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - pid
    - ns
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1443
    functionName: lxc_preserve_ns
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached:
    - ret_errno
    - strnprintf
    - strequal
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_preserve_ns(const int pid, const char *ns)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setresgid
      Src: /src/lxc/src/lxc/utils.c:1450,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1452,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/utils.c:1455,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/utils.c:1459,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1461,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/utils.c:1464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - uid
    - gid
    argTypes:
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1468
    functionName: lxc_switch_uid_gid
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - NOTICE
    - setresgid
    - SYSERROR
    - setresuid
    linkageType: ''
    returnType: bool
    signature: bool lxc_switch_uid_gid(uid_t uid, gid_t gid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setgroups
      Src: /src/lxc/src/lxc/utils.c:1475,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:1477,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/utils.c:1479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1481
    functionName: lxc_drop_groups
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - setgroups
    - NOTICE
    - log_error_errno
    linkageType: ''
    returnType: bool
    signature: bool lxc_drop_groups(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setgroups
      Src: /src/lxc/src/lxc/utils.c:1487,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:1489,1
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/utils.c:1491,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/utils.c:1493,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/utils.c:1496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - list
    - size
    argTypes:
    - gid_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1498
    functionName: lxc_setgroups
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - NOTICE
    - TRACE
    - setgroups
    - log_error_errno
    - lxc_log_trace
    linkageType: ''
    returnType: bool
    signature: bool lxc_setgroups(gid_t list[], size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/utils.c:1507,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1509,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/utils.c:1513,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/utils.c:1514,1
    - Dst: dirfd
      Src: /src/lxc/src/lxc/utils.c:1517,1
    - Dst: openat
      Src: /src/lxc/src/lxc/utils.c:1521,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/utils.c:1525,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/utils.c:1527,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1529,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1535,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1537,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/utils.c:1545,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 1
    argNames:
    - loop_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1551
    functionName: lxc_get_unused_loop_dev_legacy
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - dirfd
    - opendir
    - readdir
    - strnprintf
    - close
    - strnequal
    - closedir
    - SYSERROR
    - openat
    - ioctl
    linkageType: ''
    returnType: int
    signature: int lxc_get_unused_loop_dev_legacy(char *loop_name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:1558,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1560,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/utils.c:1564,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1566,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1570,1
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:1574,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1577,1
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:1581,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1583,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1587,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - name_loop
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1589
    functionName: lxc_get_unused_loop_dev
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - close
    - SYSERROR
    - ioctl
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_get_unused_loop_dev(char *name_loop)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_unused_loop_dev
      Src: /src/lxc/src/lxc/utils.c:1597,1
    - Dst: lxc_get_unused_loop_dev_legacy
      Src: /src/lxc/src/lxc/utils.c:1602,1
    - Dst: open
      Src: /src/lxc/src/lxc/utils.c:1607,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1609,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/utils.c:1613,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1615,1
    - Dst: memset
      Src: /src/lxc/src/lxc/utils.c:1619,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/utils.c:1622,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/utils.c:1624,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1626,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1634,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1637,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - source
    - loop_dev
    - flags
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1591
    functionDepth: 2
    functionLinenumber: 1591
    functionLinenumberEnd: 1642
    functionName: lxc_prepare_loop_dev
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - memset
    - close
    - strlcpy
    - SYSERROR
    - lxc_get_unused_loop_dev_legacy
    - lxc_get_unused_loop_dev
    - ioctl
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_prepare_loop_dev(const char *source, char *loop_dev, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: umount2
      Src: /src/lxc/src/lxc/utils.c:1650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - path
    - lazy
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1674
    functionName: lxc_unstack_mountpoint
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - umount2
    linkageType: ''
    returnType: int
    signature: int lxc_unstack_mountpoint(const char *path, bool lazy)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/lxc/src/lxc/utils.c:1686,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1687,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/lxc/utils.c:1691,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1693,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1694,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1695,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1701,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/utils.c:1706,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/utils.c:1708,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1711,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/utils.c:1714,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/utils.c:1715,1
    - Dst: child_fn
      Src: /src/lxc/src/lxc/utils.c:1719,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:1720,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/utils.c:1721,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1725,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/utils.c:1728,1
    - Dst: lxc_wait_for_pid_status
      Src: /src/lxc/src/lxc/utils.c:1734,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/utils.c:1736,1
    - Dst: close
      Src: /src/lxc/src/lxc/utils.c:1739,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - buf
    - buf_size
    - args
    - wait_status
    argTypes:
    - char*
    - size_t
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1742
    functionName: run_command_internal
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - pipe
    - close
    - lxc_raw_clone
    - ERROR
    - lxc_wait_for_pid_status
    - SYSERROR
    - _exit
    - lxc_read_nointr
    - wait_for_pid
    - dup2
    - child_fn
    linkageType: ''
    returnType: int
    signature: int run_command_internal(char *buf, size_t buf_size, int (*child_fn)(void
      *), void *args, bool wait_status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_command_internal
      Src: /src/lxc/src/lxc/utils.c:1746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - buf_size
    - args
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1744
    functionDepth: 2
    functionLinenumber: 1744
    functionLinenumberEnd: 1747
    functionName: run_command
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - run_command_internal
    linkageType: ''
    returnType: int
    signature: int run_command(char *buf, size_t buf_size, int (*child_fn)(void *),
      void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_command_internal
      Src: /src/lxc/src/lxc/utils.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - buf_size
    - args
    argTypes:
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1749
    functionDepth: 2
    functionLinenumber: 1749
    functionLinenumberEnd: 1752
    functionName: run_command_status
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - run_command_internal
    linkageType: ''
    returnType: int
    signature: int run_command_status(char *buf, size_t buf_size, int (*child_fn)(void
      *), void *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:1761,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1764,1
    - Dst: stat
      Src: /src/lxc/src/lxc/utils.c:1768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - nic
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1773
    functionName: lxc_nic_exists
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - stat
    - strnprintf
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool lxc_nic_exists(char *nic)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1791
    functionName: lxc_find_next_power2
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t lxc_find_next_power2(uint64_t n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/lxc/src/lxc/utils.c:1801,1
    - Dst: lxc_fd_cloexec
      Src: /src/lxc/src/lxc/utils.c:1805,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/utils.c:1808,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/utils.c:1813,1
    - Dst: getline
      Src: /src/lxc/src/lxc/utils.c:1816,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/utils.c:1819,1
    - Dst: lxc_trim_whitespace_in_place
      Src: /src/lxc/src/lxc/utils.c:1822,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - status_fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1829
    functionName: process_dead
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - lxc_fd_cloexec
    - strnequal
    - lxc_trim_whitespace_in_place
    - dup
    - getline
    - move_fd
    - fdopen
    linkageType: ''
    returnType: int
    signature: int process_dead(/* takes */ int status_fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/lxc/src/lxc/utils.c:1836,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/utils.c:1836,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/utils.c:1836,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/utils.c:1837,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/utils.c:1837,1
    - Dst: syscall
      Src: /src/lxc/src/lxc/utils.c:1840,1
    - Dst: process_dead
      Src: /src/lxc/src/lxc/utils.c:1845,1
    - Dst: raise
      Src: /src/lxc/src/lxc/utils.c:1846,1
    - Dst: raise
      Src: /src/lxc/src/lxc/utils.c:1848,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - signal
    - parent
    - parent_status_fd
    argTypes:
    - int
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1831
    functionDepth: 3
    functionLinenumber: 1831
    functionLinenumberEnd: 1855
    functionName: lxc_set_death_signal
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - process_dead
    - raise
    - prctl_arg
    - syscall
    - prctl
    linkageType: ''
    returnType: int
    signature: int lxc_set_death_signal(int signal, pid_t parent, int parent_status_fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/utils.c:1864,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:1866,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/utils.c:1868,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:1872,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/utils.c:1873,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/utils.c:1876,1
    - Dst: lstat
      Src: /src/lxc/src/lxc/utils.c:1877,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/utils.c:1880,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/utils.c:1886,1
    - Dst: lxc_rm_rf
      Src: /src/lxc/src/lxc/utils.c:1889,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/utils.c:1894,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/utils.c:1896,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1857
    functionDepth: 2
    functionLinenumber: 1857
    functionLinenumberEnd: 1899
    functionName: lxc_rm_rf
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 2
    functionsReached:
    - lxc_rm_rf
    - opendir
    - readdir
    - strequal
    - log_warn_errno
    - S_ISDIR
    - lstat
    - rmdir
    - SYSWARN
    - must_make_path
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_rm_rf(const char *dirname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_trace
      Src: /src/lxc/src/lxc/utils.c:1906,1
    - Dst: waitid
      Src: /src/lxc/src/lxc/utils.c:1919,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:1927,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/utils.c:1929,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/utils.c:1931,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/utils.c:1933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pidfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1934
    functionName: lxc_can_use_pidfd
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - log_trace
    - lxc_raw_pidfd_send_signal
    - waitid
    - log_error_errno
    linkageType: ''
    returnType: bool
    signature: bool lxc_can_use_pidfd(int pidfd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open_devnull
      Src: /src/lxc/src/lxc/utils.c:1944,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/utils.c:1946,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/utils.c:1948,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/utils.c:1950,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/utils.c:1952,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/utils.c:1953,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/utils.c:1955,1
    - Dst: fchown
      Src: /src/lxc/src/lxc/utils.c:1963,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/utils.c:1965,1
    - Dst: fchmod
      Src: /src/lxc/src/lxc/utils.c:1971,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/utils.c:1973,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1936
    functionDepth: 2
    functionLinenumber: 1936
    functionLinenumberEnd: 1979
    functionName: fix_stdio_permissions
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - SYSTRACE
    - fstat
    - SYSWARN
    - ARRAY_SIZE
    - open_devnull
    - log_trace_errno
    - fchmod
    - fchown
    linkageType: ''
    returnType: int
    signature: int fix_stdio_permissions(uid_t uid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/utils.c:1989,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/utils.c:1992,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/utils.c:1994,1
    - Dst: openat
      Src: /src/lxc/src/lxc/utils.c:2000,1
    - Dst: openat
      Src: /src/lxc/src/lxc/utils.c:2002,1
    - Dst: dup_cloexec
      Src: /src/lxc/src/lxc/utils.c:2007,1
    - Dst: fdopendir
      Src: /src/lxc/src/lxc/utils.c:2011,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/utils.c:2015,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/utils.c:2017,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/utils.c:2018,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/utils.c:2019,1
    - Dst: fstatat
      Src: /src/lxc/src/lxc/utils.c:2022,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/utils.c:2027,1
    - Dst: print_r
      Src: /src/lxc/src/lxc/utils.c:2028,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:2030,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/utils.c:2037,1
    - Dst: fstatat
      Src: /src/lxc/src/lxc/utils.c:2038,1
    - Dst: fstatat
      Src: /src/lxc/src/lxc/utils.c:2040,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/utils.c:2044,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/utils.c:2045,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 2
    argNames:
    - fd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 1981
    functionDepth: 2
    functionLinenumber: 1981
    functionLinenumberEnd: 2047
    functionName: print_r
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 1
    functionsReached:
    - dup_cloexec
    - strcmp
    - strnprintf
    - readdir
    - fstatat
    - ret_errno
    - openat
    - S_ISDIR
    - maybe_empty
    - is_empty_string
    - INFO
    - print_r
    - fdopendir
    - move_fd
    linkageType: ''
    returnType: int
    signature: int print_r(int fd, const char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/lxc/src/lxc/utils.c:2054,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:2056,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/utils.c:2060,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/utils.c:2076,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2081
    functionName: get_fssize
    functionSourceFile: /src/lxc/src/lxc/utils.c
    functionUses: 0
    functionsReached:
    - isblank
    - strtoull
    - ERROR
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_fssize(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nmsg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: NLMSG_TAIL
    functionSourceFile: /src/lxc/src/lxc/nl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLMSG_TAIL(nmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - na
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: NLA_DATA
    functionSourceFile: /src/lxc/src/lxc/nl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLA_DATA(na)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: NLA_NEXT_ATTR
    functionSourceFile: /src/lxc/src/lxc/nl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLA_NEXT_ATTR(attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __io_uring_disarm
      Src: /src/lxc/src/lxc/mainloop.c:57,1
    - Dst: epoll_ctl
      Src: /src/lxc/src/lxc/mainloop.c:59,1
    - Dst: syswarn_ret
      Src: /src/lxc/src/lxc/mainloop.c:62,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - descr
    - handler
    - oneshot
    argTypes:
    - struct lxc_async_descr*
    - struct mainloop_handler*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: disarm_handler
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - epoll_ctl
    - syswarn_ret
    - TRACE
    - __io_uring_disarm
    linkageType: ''
    returnType: int
    signature: "int disarm_handler(struct lxc_async_descr *descr,\n\t\t\t  struct
      mainloop_handler *handler, bool oneshot)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct mainloop_handler*::cleanup
      Src: /src/lxc/src/lxc/mainloop.c:74,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/mainloop.c:76,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:79,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/mainloop.c:80,1
    - Dst: free
      Src: /src/lxc/src/lxc/mainloop.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct mainloop_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: delete_handler
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - list_del
    - free
    - TRACE
    - SYSWARN
    - struct mainloop_handler*::cleanup
    linkageType: ''
    returnType: void
    signature: void delete_handler(struct mainloop_handler *handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: disarm_handler
      Src: /src/lxc/src/lxc/mainloop.c:87,1
    - Dst: delete_handler
      Src: /src/lxc/src/lxc/mainloop.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - descr
    - handler
    - oneshot
    argTypes:
    - struct lxc_async_descr*
    - struct mainloop_handler*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: cleanup_handler
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - delete_handler
    - disarm_handler
    linkageType: ''
    returnType: void
    signature: "void cleanup_handler(struct lxc_async_descr *descr,\n\t\t\t\t   struct
      mainloop_handler *handler, bool oneshot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - descr
    - timeout_ms
    argTypes:
    - struct lxc_async_descr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: __lxc_mainloop_io_uring
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int __lxc_mainloop_io_uring(struct lxc_async_descr *descr,\n\t\t\t\t\t
      \ int timeout_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - descr
    - handler
    - oneshot
    argTypes:
    - struct lxc_async_descr*
    - struct mainloop_handler*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: __io_uring_arm
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int __io_uring_arm(struct lxc_async_descr *descr,\n\t\t\t  struct
      mainloop_handler *handler, bool oneshot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - descr
    - handler
    argTypes:
    - struct lxc_async_descr*
    - struct mainloop_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: __io_uring_disarm
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int __io_uring_disarm(struct lxc_async_descr *descr,\n\t\t\t     struct
      mainloop_handler *handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: __io_uring_open
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int __io_uring_open(struct lxc_async_descr *descr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/lxc/src/lxc/mainloop.c:124,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mainloop.c:127,1
    - Dst: io_uring_queue_init
      Src: /src/lxc/src/lxc/mainloop.c:129,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/mainloop.c:131,1
    - Dst: io_uring_ring_dontfork
      Src: /src/lxc/src/lxc/mainloop.c:135,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/mainloop.c:137,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:142,1
    - Dst: munmap
      Src: /src/lxc/src/lxc/mainloop.c:146,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/mainloop.c:148,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - descr
    argTypes:
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 151
    functionName: __io_uring_open
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - mmap
    - syserror
    - ret_errno
    - io_uring_queue_init
    - munmap
    - SYSERROR
    - io_uring_ring_dontfork
    - TRACE
    - SYSWARN
    linkageType: ''
    returnType: int
    signature: int __io_uring_open(struct lxc_async_descr *descr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: io_uring_get_sqe
      Src: /src/lxc/src/lxc/mainloop.c:159,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/mainloop.c:161,1
    - Dst: io_uring_prep_poll_add
      Src: /src/lxc/src/lxc/mainloop.c:163,1
    - Dst: io_uring_sqe_set_data
      Src: /src/lxc/src/lxc/mainloop.c:191,1
    - Dst: io_uring_submit
      Src: /src/lxc/src/lxc/mainloop.c:192,1
    - Dst: io_uring_submit
      Src: /src/lxc/src/lxc/mainloop.c:197,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/mainloop.c:201,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - descr
    - handler
    - oneshot
    argTypes:
    - struct lxc_async_descr*
    - struct mainloop_handler*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 205
    functionName: __io_uring_arm
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - io_uring_submit
    - io_uring_get_sqe
    - TRACE
    - syserror_ret
    - io_uring_sqe_set_data
    - io_uring_prep_poll_add
    linkageType: ''
    returnType: int
    signature: "int __io_uring_arm(struct lxc_async_descr *descr,\n\t\t\t  struct
      mainloop_handler *handler, bool oneshot)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: io_uring_get_sqe
      Src: /src/lxc/src/lxc/mainloop.c:213,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/mainloop.c:215,1
    - Dst: io_uring_prep_poll_remove
      Src: /src/lxc/src/lxc/mainloop.c:218,1
    - Dst: PTR_TO_U64
      Src: /src/lxc/src/lxc/mainloop.c:218,1
    - Dst: io_uring_sqe_set_data
      Src: /src/lxc/src/lxc/mainloop.c:219,1
    - Dst: io_uring_submit
      Src: /src/lxc/src/lxc/mainloop.c:220,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/mainloop.c:222,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - descr
    - handler
    argTypes:
    - struct lxc_async_descr*
    - struct mainloop_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 227
    functionName: __io_uring_disarm
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 1
    functionsReached:
    - syserror_set
    - PTR_TO_U64
    - io_uring_submit
    - io_uring_get_sqe
    - TRACE
    - syserror_ret
    - io_uring_sqe_set_data
    - io_uring_prep_poll_remove
    linkageType: ''
    returnType: int
    signature: "int __io_uring_disarm(struct lxc_async_descr *descr,\n\t\t\t     struct
      mainloop_handler *handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ts
    - timeout_ms
    argTypes:
    - struct __kernel_timespec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: msec_to_ts
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msec_to_ts(struct __kernel_timespec *ts, unsigned int timeout_ms)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: msec_to_ts
      Src: /src/lxc/src/lxc/mainloop.c:240,1
    - Dst: io_uring_wait_cqe_timeout
      Src: /src/lxc/src/lxc/mainloop.c:250,1
    - Dst: io_uring_wait_cqe
      Src: /src/lxc/src/lxc/mainloop.c:252,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/mainloop.c:260,1
    - Dst: io_uring_cqe_get_data
      Src: /src/lxc/src/lxc/mainloop.c:266,1
    - Dst: io_uring_cqe_seen
      Src: /src/lxc/src/lxc/mainloop.c:267,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:272,1
    - Dst: has_exact_flags
      Src: /src/lxc/src/lxc/mainloop.c:274,1
    - Dst: delete_handler
      Src: /src/lxc/src/lxc/mainloop.c:275,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:278,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:281,1
    - Dst: has_exact_flags
      Src: /src/lxc/src/lxc/mainloop.c:283,1
    - Dst: delete_handler
      Src: /src/lxc/src/lxc/mainloop.c:284,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:287,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/mainloop.c:290,1
    - Dst: struct mainloop_handler*::callback
      Src: /src/lxc/src/lxc/mainloop.c:295,1
    - Dst: __io_uring_arm
      Src: /src/lxc/src/lxc/mainloop.c:299,1
    - Dst: disarm_handler
      Src: /src/lxc/src/lxc/mainloop.c:308,1
    - Dst: delete_handler
      Src: /src/lxc/src/lxc/mainloop.c:315,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/mainloop.c:318,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/mainloop.c:320,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/mainloop.c:322,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/mainloop.c:328,1
    - Dst: error_ret
      Src: /src/lxc/src/lxc/mainloop.c:329,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 2
    argNames:
    - descr
    - timeout_ms
    argTypes:
    - struct lxc_async_descr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 331
    functionName: __lxc_mainloop_io_uring
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - WARN
    - __io_uring_arm
    - msec_to_ts
    - io_uring_wait_cqe
    - io_uring_cqe_seen
    - disarm_handler
    - io_uring_wait_cqe_timeout
    - TRACE
    - has_exact_flags
    - delete_handler
    - syserror_ret
    - io_uring_cqe_get_data
    - log_trace
    - error_ret
    - list_empty
    - struct mainloop_handler*::callback
    linkageType: ''
    returnType: int
    signature: int __lxc_mainloop_io_uring(struct lxc_async_descr *descr, int timeout_ms)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: epoll_wait
      Src: /src/lxc/src/lxc/mainloop.c:340,1
    - Dst: struct mainloop_handler*::callback
      Src: /src/lxc/src/lxc/mainloop.c:355,1
    - Dst: cleanup_handler
      Src: /src/lxc/src/lxc/mainloop.c:359,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/mainloop.c:373,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - descr
    - timeout_ms
    argTypes:
    - struct lxc_async_descr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 376
    functionName: __lxc_mainloop_epoll
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - list_empty
    - epoll_wait
    - cleanup_handler
    - struct mainloop_handler*::callback
    linkageType: ''
    returnType: int
    signature: int __lxc_mainloop_epoll(struct lxc_async_descr *descr, int timeout_ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_mainloop_io_uring
      Src: /src/lxc/src/lxc/mainloop.c:381,1
    - Dst: __lxc_mainloop_epoll
      Src: /src/lxc/src/lxc/mainloop.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - descr
    - timeout_ms
    argTypes:
    - struct lxc_async_descr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: lxc_mainloop
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - __lxc_mainloop_io_uring
    - __lxc_mainloop_epoll
    linkageType: ''
    returnType: int
    signature: int lxc_mainloop(struct lxc_async_descr *descr, int timeout_ms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:398,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:401,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/mainloop.c:403,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:405,1
    - Dst: __io_uring_arm
      Src: /src/lxc/src/lxc/mainloop.c:414,1
    - Dst: epoll_ctl
      Src: /src/lxc/src/lxc/mainloop.c:418,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/mainloop.c:423,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/mainloop.c:424,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 8
    argNames:
    - descr
    - fd
    - events
    - callback
    - cleanup
    - data
    - oneshot
    - name
    argTypes:
    - struct lxc_async_descr*
    - int
    - int
    - lxc_mainloop_callback_t
    - lxc_mainloop_cleanup_t
    - void*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 426
    functionName: __lxc_mainloop_add_handler_events
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - __io_uring_arm
    - ret_errno
    - epoll_ctl
    - move_ptr
    - list_add_tail
    - zalloc
    linkageType: ''
    returnType: int
    signature: "int __lxc_mainloop_add_handler_events(struct lxc_async_descr *descr,\n\t\t\t\t\t
      \    int fd, int events,\n\t\t\t\t\t     lxc_mainloop_callback_t callback,\n\t\t\t\t\t
      \    lxc_mainloop_cleanup_t cleanup,\n\t\t\t\t\t     void *data, bool oneshot,\n\t\t\t\t\t
      \    const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_mainloop_add_handler_events
      Src: /src/lxc/src/lxc/mainloop.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - descr
    - fd
    - events
    - callback
    - cleanup
    - data
    - name
    argTypes:
    - struct lxc_async_descr*
    - int
    - int
    - lxc_mainloop_callback_t
    - lxc_mainloop_cleanup_t
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: lxc_mainloop_add_handler_events
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 1
    functionsReached:
    - __lxc_mainloop_add_handler_events
    linkageType: ''
    returnType: int
    signature: "int lxc_mainloop_add_handler_events(struct lxc_async_descr *descr,
      int fd,\n\t\t\t\t    int events,\n\t\t\t\t    lxc_mainloop_callback_t callback,\n\t\t\t\t
      \   lxc_mainloop_cleanup_t cleanup,\n\t\t\t\t    void *data, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_mainloop_add_handler_events
      Src: /src/lxc/src/lxc/mainloop.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - descr
    - fd
    - callback
    - cleanup
    - data
    - name
    argTypes:
    - struct lxc_async_descr*
    - int
    - lxc_mainloop_callback_t
    - lxc_mainloop_cleanup_t
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: lxc_mainloop_add_handler
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 1
    functionsReached:
    - __lxc_mainloop_add_handler_events
    linkageType: ''
    returnType: int
    signature: "int lxc_mainloop_add_handler(struct lxc_async_descr *descr, int fd,\n\t\t\t
      \    lxc_mainloop_callback_t callback,\n\t\t\t     lxc_mainloop_cleanup_t cleanup,\n\t\t\t
      \    void *data, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_mainloop_add_handler_events
      Src: /src/lxc/src/lxc/mainloop.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - descr
    - fd
    - callback
    - cleanup
    - data
    - name
    argTypes:
    - struct lxc_async_descr*
    - int
    - lxc_mainloop_callback_t
    - lxc_mainloop_cleanup_t
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 457
    functionName: lxc_mainloop_add_oneshot_handler
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - __lxc_mainloop_add_handler_events
    linkageType: ''
    returnType: int
    signature: "int lxc_mainloop_add_oneshot_handler(struct lxc_async_descr *descr,
      int fd,\n\t\t\t\t     lxc_mainloop_callback_t callback,\n\t\t\t\t     lxc_mainloop_cleanup_t
      cleanup,\n\t\t\t\t     void *data, const char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/mainloop.c:464,1
    - Dst: __io_uring_disarm
      Src: /src/lxc/src/lxc/mainloop.c:469,1
    - Dst: epoll_ctl
      Src: /src/lxc/src/lxc/mainloop.c:471,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mainloop.c:473,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/mainloop.c:482,1
    - Dst: free
      Src: /src/lxc/src/lxc/mainloop.c:483,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mainloop.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - descr
    - fd
    argTypes:
    - struct lxc_async_descr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 490
    functionName: lxc_mainloop_del_handler
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - syserror
    - list_del
    - ret_errno
    - epoll_ctl
    - free
    - list_for_each_entry
    - __io_uring_disarm
    linkageType: ''
    returnType: int
    signature: int lxc_mainloop_del_handler(struct lxc_async_descr *descr, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: epoll_create1
      Src: /src/lxc/src/lxc/mainloop.c:498,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mainloop.c:500,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mainloop.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - descr
    argTypes:
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 505
    functionName: __epoll_open
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - syserror
    - TRACE
    - epoll_create1
    linkageType: ''
    returnType: int
    signature: int __epoll_open(struct lxc_async_descr *descr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __io_uring_open
      Src: /src/lxc/src/lxc/mainloop.c:511,1
    - Dst: __epoll_open
      Src: /src/lxc/src/lxc/mainloop.c:513,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mainloop.c:515,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/mainloop.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - descr
    argTypes:
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 519
    functionName: lxc_mainloop_open
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - syserror
    - __io_uring_open
    - INIT_LIST_HEAD
    - __epoll_open
    linkageType: ''
    returnType: int
    signature: int lxc_mainloop_open(struct lxc_async_descr *descr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/mainloop.c:525,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/mainloop.c:526,1
    - Dst: free
      Src: /src/lxc/src/lxc/mainloop.c:527,1
    - Dst: io_uring_queue_exit
      Src: /src/lxc/src/lxc/mainloop.c:533,1
    - Dst: munmap
      Src: /src/lxc/src/lxc/mainloop.c:534,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/mainloop.c:537,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/mainloop.c:540,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/mainloop.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - descr
    argTypes:
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 544
    functionName: lxc_mainloop_close
    functionSourceFile: /src/lxc/src/lxc/mainloop.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - close_prot_errno_disarm
    - io_uring_queue_exit
    - list_for_each_entry_safe
    - munmap
    - free
    - ERROR
    linkageType: ''
    returnType: void
    signature: void lxc_mainloop_close(struct lxc_async_descr *descr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/caps.c:27,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/caps.c:31,1
    - Dst: cap_get_proc
      Src: /src/lxc/src/lxc/caps.c:34,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:36,1
    - Dst: cap_clear_flag
      Src: /src/lxc/src/lxc/caps.c:38,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:40,1
    - Dst: cap_set_proc
      Src: /src/lxc/src/lxc/caps.c:42,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 47
    functionName: lxc_caps_down
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - cap_set_proc
    - cap_clear_flag
    - getuid
    - cap_get_proc
    - call_cleaner
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_caps_down(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/caps.c:51,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/caps.c:56,1
    - Dst: cap_get_proc
      Src: /src/lxc/src/lxc/caps.c:59,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:61,1
    - Dst: cap_get_flag
      Src: /src/lxc/src/lxc/caps.c:66,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/caps.c:69,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:72,1
    - Dst: cap_set_flag
      Src: /src/lxc/src/lxc/caps.c:76,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:78,1
    - Dst: cap_set_proc
      Src: /src/lxc/src/lxc/caps.c:81,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 86
    functionName: lxc_caps_up
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - cap_set_proc
    - cap_set_flag
    - getuid
    - INFO
    - cap_get_flag
    - cap_get_proc
    - call_cleaner
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_caps_up(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/caps.c:90,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/caps.c:96,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/caps.c:96,1
    - Dst: cap_get_proc
      Src: /src/lxc/src/lxc/caps.c:99,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:101,1
    - Dst: cap_get_flag
      Src: /src/lxc/src/lxc/caps.c:106,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/caps.c:110,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:114,1
    - Dst: cap_set_flag
      Src: /src/lxc/src/lxc/caps.c:117,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:119,1
    - Dst: cap_set_proc
      Src: /src/lxc/src/lxc/caps.c:122,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:124,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/caps.c:127,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:127,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:128,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:128,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:128,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/caps.c:130,1
    - Dst: cap_to_text
      Src: /src/lxc/src/lxc/caps.c:133,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/caps.c:135,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/caps.c:137,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 139
    functionName: lxc_ambient_caps_up
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - cap_set_proc
    - cap_set_flag
    - prctl_arg
    - log_warn_errno
    - getuid
    - prctl
    - INFO
    - geteuid
    - TRACE
    - cap_get_flag
    - cap_get_proc
    - call_cleaner
    - cap_to_text
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_ambient_caps_up(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/caps.c:143,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/caps.c:147,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/caps.c:147,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/caps.c:150,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:150,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:151,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:151,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:151,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:153,1
    - Dst: cap_get_proc
      Src: /src/lxc/src/lxc/caps.c:155,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:157,1
    - Dst: cap_set_flag
      Src: /src/lxc/src/lxc/caps.c:160,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:162,1
    - Dst: cap_set_proc
      Src: /src/lxc/src/lxc/caps.c:165,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 170
    functionName: lxc_ambient_caps_down
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - cap_set_proc
    - cap_set_flag
    - prctl_arg
    - prctl
    - getuid
    - geteuid
    - cap_get_proc
    - call_cleaner
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_ambient_caps_down(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/lxc/src/lxc/caps.c:176,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/caps.c:180,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/caps.c:185,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/caps.c:187,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:187,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:189,1
    - Dst: getgid
      Src: /src/lxc/src/lxc/caps.c:191,1
    - Dst: setresgid
      Src: /src/lxc/src/lxc/caps.c:192,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:194,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/caps.c:196,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:198,1
    - Dst: lxc_caps_up
      Src: /src/lxc/src/lxc/caps.c:200,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:202,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/caps.c:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 209
    functionName: lxc_caps_init
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - getgid
    - prctl_arg
    - prctl
    - getuid
    - INFO
    - geteuid
    - setresgid
    - setresuid
    - lxc_caps_up
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_caps_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/caps.c:216,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/caps.c:224,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/caps.c:232,1
    - Dst: lxc_read_string_nointr
      Src: /src/lxc/src/lxc/caps.c:234,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/caps.c:234,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/caps.c:236,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/caps.c:238,1
    - Dst: lxc_trim_whitespace_in_place
      Src: /src/lxc/src/lxc/caps.c:238,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/caps.c:240,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/caps.c:250,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/caps.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - cap
    argTypes:
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 258
    functionName: __caps_last_cap
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - syserror
    - ret_errno
    - INTTYPE_TO_STRLEN
    - lxc_safe_uint
    - prctl_arg
    - lxc_trim_whitespace_in_place
    - prctl
    - open_at
    - lxc_read_string_nointr
    - STRARRAYLEN
    linkageType: ''
    returnType: int
    signature: int __caps_last_cap(__u32 *cap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/caps.c:266,1
    - Dst: __caps_last_cap
      Src: /src/lxc/src/lxc/caps.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - cap
    argTypes:
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 276
    functionName: lxc_caps_last_cap
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 1
    functionsReached:
    - __caps_last_cap
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int lxc_caps_last_cap(__u32 *cap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cap_get_flag
      Src: /src/lxc/src/lxc/caps.c:283,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - caps
    - cap
    - flag
    argTypes:
    - cap_t
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: lxc_cap_is_set
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - cap_get_flag
    linkageType: ''
    returnType: bool
    signature: bool lxc_cap_is_set(cap_t caps, cap_value_t cap, cap_flag_t flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/caps.c:293,1
    - Dst: cap_get_file
      Src: /src/lxc/src/lxc/caps.c:295,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/caps.c:303,1
    - Dst: lxc_cap_is_set
      Src: /src/lxc/src/lxc/caps.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - path
    - cap
    - flag
    argTypes:
    - char*
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 313
    functionName: lxc_file_cap_is_set
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - cap_get_file
    - call_cleaner
    - SYSERROR
    - lxc_cap_is_set
    linkageType: ''
    returnType: bool
    signature: bool lxc_file_cap_is_set(const char *path, cap_value_t cap, cap_flag_t
      flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/caps.c:317,1
    - Dst: cap_get_proc
      Src: /src/lxc/src/lxc/caps.c:319,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/caps.c:321,1
    - Dst: lxc_cap_is_set
      Src: /src/lxc/src/lxc/caps.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cap
    - flag
    argTypes:
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: lxc_proc_cap_is_set
    functionSourceFile: /src/lxc/src/lxc/caps.c
    functionUses: 0
    functionsReached:
    - call_cleaner
    - log_error_errno
    - lxc_cap_is_set
    - cap_get_proc
    linkageType: ''
    returnType: bool
    signature: bool lxc_proc_cap_is_set(cap_value_t cap, cap_flag_t flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - cleaner
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: define_cleanup_function
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_cleanup_function(type, cleaner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cleaner
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: call_cleaner
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: call_cleaner(cleaner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: close_prot_errno_disarm
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: close_prot_errno_disarm(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - new_fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: close_prot_errno_move
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: close_prot_errno_move(fd, new_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/memory_utils.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: close_prot_errno_disarm_function
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void close_prot_errno_disarm_function(int *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: free_disarm
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free_disarm(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/memory_utils.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: free_disarm_function
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void free_disarm_function(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR
      Src: /src/lxc/src/lxc/memory_utils.h:73,1
    - Dst: free
      Src: /src/lxc/src/lxc/memory_utils.h:75,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/memory_utils.h:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: free_string_list
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached:
    - free
    - IS_ERR
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void free_string_list(char **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/memory_utils.h:86,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/memory_utils.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: memdup
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached:
    - memcpy
    - malloc
    linkageType: ''
    returnType: void
    signature: void *memdup(const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __size__
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: zalloc
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zalloc(__size__)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: free_move_ptr
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free_move_ptr(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: close_move_fd
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: close_move_fd(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: close_equal
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: close_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: free_equal
    functionSourceFile: /src/lxc/src/lxc/memory_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: do_lxcapi_get_config_path
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_lxcapi_get_config_path(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:99,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:99,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:99,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:100,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:101,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - lxcpath
    - cname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: config_file_exists
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - strlen
    - file_exists
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: bool config_file_exists(const char *lxcpath, const char *cname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:132,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:132,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:132,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:133,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:134,1
    - Dst: open
      Src: /src/lxc/src/lxc/lxccontainer.c:138,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/lxccontainer.c:154,1
    - Dst: flock
      Src: /src/lxc/src/lxc/lxccontainer.c:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 168
    functionName: ongoing_create
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - fcntl
    - strlen
    - flock
    - open
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int ongoing_create(struct lxc_container *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: openat
      Src: /src/lxc/src/lxc/lxccontainer.c:176,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/lxccontainer.c:178,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/lxccontainer.c:183,1
    - Dst: flock
      Src: /src/lxc/src/lxc/lxccontainer.c:186,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/lxccontainer.c:188,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/lxccontainer.c:191,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:194,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/lxccontainer.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - fd_rootfs
    - c
    argTypes:
    - int
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 196
    functionName: create_partial
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - syserror
    - fcntl
    - flock
    - openat
    - TRACE
    - move_fd
    linkageType: ''
    returnType: int
    signature: int create_partial(int fd_rootfs, struct lxc_container *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:204,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:207,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:207,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:207,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:208,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:209,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/lxccontainer.c:213,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - c
    - fd
    argTypes:
    - struct lxc_container*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: remove_partial
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - close
    - strlen
    - SYSERROR
    - unlink
    - must_realloc
    linkageType: ''
    returnType: void
    signature: void remove_partial(struct lxc_container *c, int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:244,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:247,1
    - Dst: lxc_putlock
      Src: /src/lxc/src/lxc/lxccontainer.c:251,1
    - Dst: lxc_putlock
      Src: /src/lxc/src/lxc/lxccontainer.c:256,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:260,1
    - Dst: lxc_conf_free
      Src: /src/lxc/src/lxc/lxccontainer.c:264,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:268,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 272
    functionName: lxc_container_free
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - free
    - lxc_conf_free
    - lxc_putlock
    linkageType: ''
    returnType: void
    signature: void lxc_container_free(struct lxc_container *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:310,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 323
    functionName: lxc_container_get
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 2
    functionsReached:
    - container_mem_lock
    - container_mem_unlock
    linkageType: ''
    returnType: int
    signature: int lxc_container_get(struct lxc_container *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:330,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:336,1
    - Dst: lxc_container_free
      Src: /src/lxc/src/lxc/lxccontainer.c:337,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 343
    functionName: lxc_container_put
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 36
    functionsReached:
    - container_mem_lock
    - lxc_container_free
    - container_mem_unlock
    linkageType: ''
    returnType: int
    signature: int lxc_container_put(struct lxc_container *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:354,1
    - Dst: stat
      Src: /src/lxc/src/lxc/lxccontainer.c:360,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 369
    functionName: do_lxcapi_is_defined
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - stat
    - container_mem_lock
    - container_mem_unlock
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_is_defined(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rettype
    - ','
    - fnname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 388
    functionName: WRAP_API
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_API(rettype, fnname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rettype
    - ','
    - fnname
    - ','
    - t1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 406
    functionName: WRAP_API_1
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_API_1(rettype, fnname, t1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rettype
    - ','
    - fnname
    - ','
    - t1
    - ','
    - t2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 424
    functionName: WRAP_API_2
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_API_2(rettype, fnname, t1, t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - rettype
    - ','
    - fnname
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 442
    functionName: WRAP_API_3
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_API_3(rettype, fnname, t1, t2, t3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - rettype
    - ','
    - fnname
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 461
    functionName: WRAP_API_5
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_API_5(rettype, fnname, t1, t2, t3, t4, t5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - rettype
    - ','
    - fnname
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - ','
    - t4
    - ','
    - t5
    - ','
    - t6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 480
    functionName: WRAP_API_6
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_API_6(rettype, fnname, t1, t2, t3, t4, t5, t6)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_getstate
      Src: /src/lxc/src/lxc/lxccontainer.c:490,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/lxccontainer.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 492
    functionName: do_lxcapi_state
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_state2str
    - lxc_getstate
    linkageType: ''
    returnType: char
    signature: char *do_lxcapi_state(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_getstate
      Src: /src/lxc/src/lxc/lxccontainer.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: is_stopped
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_getstate
    linkageType: ''
    returnType: bool
    signature: bool is_stopped(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_stopped
      Src: /src/lxc/src/lxc/lxccontainer.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: do_lxcapi_is_running
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - is_stopped
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_is_running(struct lxc_container *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_getstate
      Src: /src/lxc/src/lxc/lxccontainer.c:522,1
    - Dst: cgroup_freeze
      Src: /src/lxc/src/lxc/lxccontainer.c:524,1
    - Dst: lxc_freeze
      Src: /src/lxc/src/lxc/lxccontainer.c:526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 530
    functionName: do_lxcapi_freeze
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - cgroup_freeze
    - lxc_getstate
    - lxc_freeze
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_freeze(struct lxc_container *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_getstate
      Src: /src/lxc/src/lxc/lxccontainer.c:542,1
    - Dst: cgroup_unfreeze
      Src: /src/lxc/src/lxc/lxccontainer.c:552,1
    - Dst: lxc_unfreeze
      Src: /src/lxc/src/lxc/lxccontainer.c:554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 559
    functionName: do_lxcapi_unfreeze
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - cgroup_unfreeze
    - lxc_getstate
    - lxc_unfreeze
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_unfreeze(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_getfd
      Src: /src/lxc/src/lxc/lxccontainer.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - c
    - ttynum
    - ptxfd
    argTypes:
    - struct lxc_container*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: do_lxcapi_console_getfd
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_getfd
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_console_getfd(struct lxc_container *c, int *ttynum, int
      *ptxfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_console
      Src: /src/lxc/src/lxc/lxccontainer.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - c
    - ttynum
    - stdinfd
    - stdoutfd
    - stderrfd
    - escape
    argTypes:
    - struct lxc_container*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 586
    functionName: lxcapi_console
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_console
    linkageType: ''
    returnType: int
    signature: "int lxcapi_console(struct lxc_container *c, int ttynum, int stdinfd,\n\t\t\t
      \ int stdoutfd, int stderrfd, int escape)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_console_log
      Src: /src/lxc/src/lxc/lxccontainer.c:595,1
    - Dst: do_lxcapi_get_config_path
      Src: /src/lxc/src/lxc/lxccontainer.c:595,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/lxccontainer.c:598,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/lxccontainer.c:600,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/lxccontainer.c:602,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/lxccontainer.c:604,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - c
    - log
    argTypes:
    - struct lxc_container*
    - struct lxc_console_log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 610
    functionName: do_lxcapi_console_log
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - NOTICE
    - do_lxcapi_get_config_path
    - ERROR
    - lxc_cmd_console_log
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_console_log(struct lxc_container *c, struct lxc_console_log
      *log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: do_lxcapi_init_pid
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_get_init_pid
    linkageType: ''
    returnType: pid_t
    signature: pid_t do_lxcapi_init_pid(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:627,1
    - Dst: lxc_cmd_get_init_pidfd
      Src: /src/lxc/src/lxc/lxccontainer.c:629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 630
    functionName: do_lxcapi_init_pidfd
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_get_init_pidfd
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_init_pidfd(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:637,1
    - Dst: lxc_cmd_get_devpts_fd
      Src: /src/lxc/src/lxc/lxccontainer.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 640
    functionName: do_lxcapi_devpts_fd
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_get_devpts_fd
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_devpts_fd(struct lxc_container *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_conf_init
      Src: /src/lxc/src/lxc/lxccontainer.c:647,1
    - Dst: lxc_config_read
      Src: /src/lxc/src/lxc/lxccontainer.c:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - c
    - fname
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 657
    functionName: load_config_locked
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_config_read
    - lxc_conf_init
    linkageType: ''
    returnType: bool
    signature: bool load_config_locked(struct lxc_container *c, const char *fname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:680,1
    - Dst: container_disk_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:684,1
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:686,1
    - Dst: load_config_locked
      Src: /src/lxc/src/lxc/lxccontainer.c:690,1
    - Dst: container_disk_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:693,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - c
    - alt_file
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 698
    functionName: do_lxcapi_load_config
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - container_mem_lock
    - strequal
    - load_config_locked
    - container_disk_lock
    - container_disk_unlock
    - container_mem_unlock
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_load_config(struct lxc_container *c, const char *alt_file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:707,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - state
    argTypes:
    - struct lxc_container*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 715
    functionName: do_lxcapi_want_daemonize
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - container_mem_lock
    - container_mem_unlock
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_want_daemonize(struct lxc_container *c, bool state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:724,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - state
    argTypes:
    - struct lxc_container*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 732
    functionName: do_lxcapi_want_close_all_fds
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - container_mem_lock
    - container_mem_unlock
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_want_close_all_fds(struct lxc_container *c, bool state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_wait
      Src: /src/lxc/src/lxc/lxccontainer.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - c
    - state
    - timeout
    argTypes:
    - struct lxc_container*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 736
    functionDepth: 4
    functionLinenumber: 736
    functionLinenumberEnd: 746
    functionName: do_lxcapi_wait
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_wait
    linkageType: ''
    returnType: bool
    signature: "bool do_lxcapi_wait(struct lxc_container *c, const char *state,\n\t\t\t
      \  int timeout)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/lxccontainer.c:756,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/lxccontainer.c:760,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:761,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:764,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 773
    functionName: am_single_threaded
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool am_single_threaded(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:783,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 786
    functionName: free_init_cmd
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_init_cmd(char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_rcv_credential
      Src: /src/lxc/src/lxc/lxccontainer.c:795,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - state_socket
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 805
    functionName: lxc_rcv_status
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - TRACE
    - lxc_abstract_unix_rcv_credential
    linkageType: ''
    returnType: int
    signature: int lxc_rcv_status(int state_socket)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:814,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/lxccontainer.c:816,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/lxccontainer.c:818,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/lxccontainer.c:821,1
    - Dst: lxc_rcv_status
      Src: /src/lxc/src/lxc/lxccontainer.c:823,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/lxccontainer.c:826,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:829,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:837,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/lxccontainer.c:838,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - handler
    - pid
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 844
    functionName: wait_on_daemonized_start
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - lxc_state2str
    - lxc_rcv_status
    - SYSERROR
    - TRACE
    - DEBUG
    - wait_for_pid
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool wait_on_daemonized_start(struct lxc_handler *handler, int pid)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: ongoing_create
      Src: /src/lxc/src/lxc/lxccontainer.c:869,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:872,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:875,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:878,1
    - Dst: do_lxcapi_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:879,1
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:883,1
    - Dst: lxc_init_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:889,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:891,1
    - Dst: lxc_string_split_quoted
      Src: /src/lxc/src/lxc/lxccontainer.c:901,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:907,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:908,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:923,1
    - Dst: free_init_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:925,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:926,1
    - Dst: wait_on_daemonized_start
      Src: /src/lxc/src/lxc/lxccontainer.c:940,1
    - Dst: free_init_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:942,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:943,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:953,1
    - Dst: setproctitle
      Src: /src/lxc/src/lxc/lxccontainer.c:955,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:957,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:959,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:966,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:968,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:969,1
    - Dst: free_init_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:974,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:975,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:976,1
    - Dst: chdir
      Src: /src/lxc/src/lxc/lxccontainer.c:982,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:984,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:985,1
    - Dst: inherit_fds
      Src: /src/lxc/src/lxc/lxccontainer.c:988,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:990,1
    - Dst: null_stdfds
      Src: /src/lxc/src/lxc/lxccontainer.c:993,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:995,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:996,1
    - Dst: setsid
      Src: /src/lxc/src/lxc/lxccontainer.c:1000,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:1002,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/lxccontainer.c:1002,1
    - Dst: am_single_threaded
      Src: /src/lxc/src/lxc/lxccontainer.c:1003,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1004,1
    - Dst: free_init_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:1005,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:1006,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/lxccontainer.c:1015,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1017,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/lxccontainer.c:1017,1
    - Dst: free_init_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:1019,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:1020,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1022,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1025,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/lxccontainer.c:1030,1
    - Dst: free_init_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:1032,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:1033,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1035,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1038,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/lxccontainer.c:1048,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1050,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:1051,1
    - Dst: mount
      Src: /src/lxc/src/lxc/lxccontainer.c:1056,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1058,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:1059,1
    - Dst: lxc_init_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:1068,1
    - Dst: inherit_fds
      Src: /src/lxc/src/lxc/lxccontainer.c:1075,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/lxccontainer.c:1077,1
    - Dst: lxc_execute
      Src: /src/lxc/src/lxc/lxccontainer.c:1083,1
    - Dst: lxc_start
      Src: /src/lxc/src/lxc/lxccontainer.c:1086,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:1090,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/lxccontainer.c:1097,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1098,1
    - Dst: free_init_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:1101,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1104,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1106,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 174
    argCount: 3
    argNames:
    - c
    - useinit
    - argv
    argTypes:
    - struct lxc_container*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 1112
    functionName: do_lxcapi_start
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_execute
    - lxc_put_handler
    - chdir
    - setproctitle
    - wait_on_daemonized_start
    - lxc_start
    - container_mem_unlock
    - lxc_write_to_file
    - mount
    - setsid
    - container_mem_lock
    - INTTYPE_TO_STRLEN
    - free
    - do_lxcapi_destroy
    - inherit_fds
    - null_stdfds
    - free_init_cmd
    - ongoing_create
    - SYSERROR
    - TRACE
    - unlink
    - lxc_string_split_quoted
    - lxc_raw_getpid
    - strnprintf
    - am_single_threaded
    - unshare
    - lxc_init_handler
    - INFO
    - _exit
    - fork
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_start(struct lxc_container *c, int useinit, char * const
      argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_start
      Src: /src/lxc/src/lxc/lxccontainer.c:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - useinit
    - argv
    argTypes:
    - struct lxc_container*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1114
    functionDepth: 4
    functionLinenumber: 1114
    functionLinenumberEnd: 1124
    functionName: lxcapi_start
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - do_lxcapi_start
    linkageType: ''
    returnType: bool
    signature: "bool lxcapi_start(struct lxc_container *c, int useinit,\n\t\t\t char
      *const argv[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/lxc/src/lxc/lxccontainer.c:1139,1
    - Dst: lxc_va_arg_list_to_argv
      Src: /src/lxc/src/lxc/lxccontainer.c:1140,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/lxccontainer.c:1141,1
    - Dst: do_lxcapi_start
      Src: /src/lxc/src/lxc/lxccontainer.c:1146,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1153,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - c
    - useinit
    argTypes:
    - struct lxc_container*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1127
    functionDepth: 4
    functionLinenumber: 1127
    functionLinenumberEnd: 1160
    functionName: lxcapi_startl
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - free
    - va_start
    - do_lxcapi_start
    - va_end
    - lxc_va_arg_list_to_argv
    linkageType: ''
    returnType: bool
    signature: bool lxcapi_startl(struct lxc_container *c, int useinit, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_stop
      Src: /src/lxc/src/lxc/lxccontainer.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1172
    functionName: do_lxcapi_stop
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_stop
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_stop(struct lxc_container *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/lxc/src/lxc/lxccontainer.c:1181,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/lxccontainer.c:1182,1
    - Dst: umask
      Src: /src/lxc/src/lxc/lxccontainer.c:1183,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/lxccontainer.c:1187,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/lxccontainer.c:1189,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:1191,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/lxccontainer.c:1192,1
    - Dst: userns_exec_mapped_root
      Src: /src/lxc/src/lxc/lxccontainer.c:1194,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/lxccontainer.c:1196,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/lxccontainer.c:1198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - path
    - conf
    argTypes:
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1199
    functionName: do_create_container_dir
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - syserror
    - userns_exec_mapped_root
    - open_at
    - syserror_ret
    - move_fd
    - umask
    - list_empty
    - mkdir
    linkageType: ''
    returnType: int
    signature: int do_create_container_dir(const char *path, struct lxc_conf *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1208,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1208,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1209,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:1211,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1213,1
    - Dst: do_create_container_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:1217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1218
    functionName: create_container_dir
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - strnprintf
    - ret_errno
    - do_create_container_dir
    - strlen
    - malloc
    linkageType: ''
    returnType: int
    signature: int create_container_dir(struct lxc_container *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/lxc/src/lxc/lxccontainer.c:1234,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1236,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1237,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1238,1
    - Dst: do_lxcapi_get_config_path
      Src: /src/lxc/src/lxc/lxccontainer.c:1240,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1241,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1241,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1241,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1242,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1243,1
    - Dst: storage_create
      Src: /src/lxc/src/lxc/lxccontainer.c:1248,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1250,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/lxccontainer.c:1254,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1255,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:1256,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:1263,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:1263,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/lxccontainer.c:1264,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1266,1
    - Dst: suggest_default_idmap
      Src: /src/lxc/src/lxc/lxccontainer.c:1267,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:1268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - c
    - type
    - specs
    argTypes:
    - struct lxc_container*
    - char*
    - struct bdev_specs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1274
    functionName: do_storage_create
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - struct lxc_container*::set_config_item
    - am_guest_unpriv
    - strlen
    - access
    - suggest_default_idmap
    - storage_create
    - chown_mapped_root
    - storage_put
    - do_lxcapi_get_config_path
    - ERROR
    - list_empty
    - must_realloc
    linkageType: ''
    returnType: struct lxc_storage
    signature: "struct lxc_storage *do_storage_create(struct lxc_container *c,\n\t\t\t\t\t
      \    const char *type,\n\t\t\t\t\t     struct bdev_specs *specs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1286
    functionName: lxctemplatefilename
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char *lxctemplatefilename(char *tpath)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:1297,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1299,1
    - Dst: null_stdfds
      Src: /src/lxc/src/lxc/lxccontainer.c:1313,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1315,1
    - Dst: lxc_storage_prepare
      Src: /src/lxc/src/lxc/lxccontainer.c:1318,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1320,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1321,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/lxccontainer.c:1325,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/lxccontainer.c:1327,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1329,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1330,1
    - Dst: detect_shared_rootfs
      Src: /src/lxc/src/lxc/lxccontainer.c:1333,1
    - Dst: mount
      Src: /src/lxc/src/lxc/lxccontainer.c:1333,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1334,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:1337,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:1337,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1339,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1341,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:1344,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:1345,1
    - Dst: ovl_get_rootfs
      Src: /src/lxc/src/lxc/lxccontainer.c:1365,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1367,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1368,1
    - Dst: mount
      Src: /src/lxc/src/lxc/lxccontainer.c:1371,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1373,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1374,1
    - Dst: struct lxc_storage*::ops::mount
      Src: /src/lxc/src/lxc/lxccontainer.c:1377,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1379,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1380,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1385,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/lxccontainer.c:1386,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:1387,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1400,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1402,1
    - Dst: lxctemplatefilename
      Src: /src/lxc/src/lxc/lxccontainer.c:1403,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1406,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1406,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1406,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1407,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1409,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1411,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1413,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1417,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1417,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1418,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1420,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1422,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1424,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1428,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:1428,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1429,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1431,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1433,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1435,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1445,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1447,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:1455,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1462,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1464,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/lxccontainer.c:1470,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1472,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1474,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1477,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1479,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1481,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1485,1
    - Dst: mapped_hostid
      Src: /src/lxc/src/lxc/lxccontainer.c:1488,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/lxccontainer.c:1488,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1491,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1493,1
    - Dst: find_unmapped_nsid
      Src: /src/lxc/src/lxc/lxccontainer.c:1496,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1499,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1500,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1503,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1505,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1506,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1509,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/lxccontainer.c:1510,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1512,1
    - Dst: mapped_hostid
      Src: /src/lxc/src/lxc/lxccontainer.c:1515,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/lxccontainer.c:1515,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1518,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1520,1
    - Dst: find_unmapped_nsid
      Src: /src/lxc/src/lxc/lxccontainer.c:1523,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1526,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1527,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1530,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1532,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1533,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1536,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/lxccontainer.c:1537,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1539,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1552,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1554,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1559,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1561,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1562,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1563,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1565,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1567,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1568,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1569,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1575,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1577,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1578,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1579,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1581,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1583,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1584,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1585,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1590,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/lxccontainer.c:1594,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1595,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1596,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:1599,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1601,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 210
    argCount: 4
    argNames:
    - c
    - tpath
    - need_null_stdfds
    - argv
    argTypes:
    - struct lxc_container*
    - char*
    - bool
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1288
    functionDepth: 3
    functionLinenumber: 1288
    functionLinenumberEnd: 1606
    functionName: create_run_template
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - mapped_hostid
    - wait_for_pid
    - ERROR
    - mount
    - free
    - strlen
    - struct lxc_storage*::ops::mount
    - lxc_storage_get_path
    - detect_shared_rootfs
    - null_stdfds
    - lxc_storage_prepare
    - strequal
    - getegid
    - SYSERROR
    - geteuid
    - find_unmapped_nsid
    - execvp
    - ovl_get_rootfs
    - strnprintf
    - unshare
    - lxctemplatefilename
    - _exit
    - list_for_each_entry
    - realloc
    - fork
    - strdup
    - list_empty
    - malloc
    linkageType: ''
    returnType: bool
    signature: "bool create_run_template(struct lxc_container *c, char *tpath,\n\t\t\t\tbool
      need_null_stdfds, char *const argv[])"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:1621,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/lxccontainer.c:1625,1
    - Dst: ftell
      Src: /src/lxc/src/lxc/lxccontainer.c:1630,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/lxccontainer.c:1634,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/lxccontainer.c:1638,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:1643,1
    - Dst: fread
      Src: /src/lxc/src/lxc/lxccontainer.c:1647,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:1653,1
    - Dst: get_template_path
      Src: /src/lxc/src/lxc/lxccontainer.c:1659,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1661,1
    - Dst: sha1sum_file
      Src: /src/lxc/src/lxc/lxccontainer.c:1665,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1667,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1668,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1671,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:1674,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1676,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1677,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1681,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1683,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1685,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1688,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1692,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1694,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1695,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1697,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1698,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1699,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:1700,1
    - Dst: fwrite
      Src: /src/lxc/src/lxc/lxccontainer.c:1701,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1703,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1704,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:1705,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:1712,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:1717,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1723,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 96
    argCount: 3
    argNames:
    - path
    - t
    - argv
    argTypes:
    - char*
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1728
    functionName: prepend_lxc_header
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - get_template_path
    - fclose
    - fwrite
    - fprintf
    - free
    - fopen
    - SYSERROR
    - sha1sum_file
    - fseek
    - fread
    - ERROR
    - ftell
    - malloc
    linkageType: ''
    returnType: bool
    signature: bool prepend_lxc_header(char *path, const char *t, char *const argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_conf_free
      Src: /src/lxc/src/lxc/lxccontainer.c:1735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1737
    functionName: lxcapi_clear_config
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_conf_free
    linkageType: ''
    returnType: void
    signature: void lxcapi_clear_config(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1740
    functionName: do_lxcapi_clear_config
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_lxcapi_clear_config(c)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: get_template_path
      Src: /src/lxc/src/lxc/lxccontainer.c:1770,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:1772,1
    - Dst: do_lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:1779,1
    - Dst: access
      Src: /src/lxc/src/lxc/lxccontainer.c:1780,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:1781,1
    - Dst: do_lxcapi_load_config
      Src: /src/lxc/src/lxc/lxccontainer.c:1785,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:1785,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:1786,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:1787,1
    - Dst: create_container_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:1789,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:1791,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/lxc/lxccontainer.c:1802,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1803,1
    - Dst: access
      Src: /src/lxc/src/lxc/lxccontainer.c:1812,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1813,1
    - Dst: do_lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:1817,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/lxc/lxccontainer.c:1821,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1822,1
    - Dst: create_partial
      Src: /src/lxc/src/lxc/lxccontainer.c:1829,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1831,1
    - Dst: umask
      Src: /src/lxc/src/lxc/lxccontainer.c:1837,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:1845,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1847,1
    - Dst: do_storage_create
      Src: /src/lxc/src/lxc/lxccontainer.c:1854,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1856,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1858,1
    - Dst: do_lxcapi_save_config
      Src: /src/lxc/src/lxc/lxccontainer.c:1862,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1863,1
    - Dst: struct lxc_storage*::ops::umount
      Src: /src/lxc/src/lxc/lxccontainer.c:1867,1
    - Dst: struct lxc_storage*::ops::destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:1868,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1869,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:1872,1
    - Dst: wait_exited
      Src: /src/lxc/src/lxc/lxccontainer.c:1875,1
    - Dst: lxc_conf_free
      Src: /src/lxc/src/lxc/lxccontainer.c:1879,1
    - Dst: load_config_locked
      Src: /src/lxc/src/lxc/lxccontainer.c:1882,1
    - Dst: create_run_template
      Src: /src/lxc/src/lxc/lxccontainer.c:1885,1
    - Dst: do_lxcapi_clear_config
      Src: /src/lxc/src/lxc/lxccontainer.c:1891,1
    - Dst: prepend_lxc_header
      Src: /src/lxc/src/lxc/lxccontainer.c:1894,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:1895,1
    - Dst: load_config_locked
      Src: /src/lxc/src/lxc/lxccontainer.c:1900,1
    - Dst: umask
      Src: /src/lxc/src/lxc/lxccontainer.c:1903,1
    - Dst: remove_partial
      Src: /src/lxc/src/lxc/lxccontainer.c:1904,1
    - Dst: container_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:1916,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 99
    argCount: 6
    argNames:
    - c
    - t
    - bdevtype
    - specs
    - flags
    - argv
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - struct bdev_specs*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1755
    functionDepth: 4
    functionLinenumber: 1755
    functionLinenumberEnd: 1921
    functionName: __lxcapi_create
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_global_config_value
    - do_lxcapi_clear_config
    - prepend_lxc_header
    - remove_partial
    - do_lxcapi_load_config
    - get_template_path
    - log_error
    - struct lxc_container*::save_config
    - load_config_locked
    - struct lxc_storage*::ops::destroy
    - do_lxcapi_save_config
    - create_partial
    - wait_exited
    - do_lxcapi_is_defined
    - SYSERROR
    - do_storage_create
    - umask
    - struct lxc_storage*::ops::umount
    - lxc_conf_free
    - create_run_template
    - access
    - create_container_dir
    - _exit
    - container_destroy
    - fork
    - ERROR
    linkageType: ''
    returnType: bool
    signature: "bool __lxcapi_create(struct lxc_container *c, const char *t,\n\t\t\t
      \   const char *bdevtype, struct bdev_specs *specs,\n\t\t\t    int flags, char
      *const argv[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxcapi_create
      Src: /src/lxc/src/lxc/lxccontainer.c:1927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - c
    - t
    - bdevtype
    - specs
    - flags
    - argv
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - struct bdev_specs*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1923
    functionDepth: 5
    functionLinenumber: 1923
    functionLinenumberEnd: 1928
    functionName: do_lxcapi_create
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - __lxcapi_create
    linkageType: ''
    returnType: bool
    signature: "bool do_lxcapi_create(struct lxc_container *c, const char *t,\n\t\t\t
      \    const char *bdevtype, struct bdev_specs *specs,\n\t\t\t     int flags,
      char *const argv[])"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_is_running
      Src: /src/lxc/src/lxc/lxccontainer.c:1943,1
    - Dst: do_lxcapi_init_pidfd
      Src: /src/lxc/src/lxc/lxccontainer.c:1946,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:1948,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/lxccontainer.c:1957,1
    - Dst: kill
      Src: /src/lxc/src/lxc/lxccontainer.c:1959,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/lxccontainer.c:1961,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1933
    functionDepth: 4
    functionLinenumber: 1933
    functionLinenumberEnd: 1965
    functionName: do_lxcapi_reboot
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - log_warn
    - kill
    - do_lxcapi_is_running
    - do_lxcapi_init_pid
    - lxc_raw_pidfd_send_signal
    - do_lxcapi_init_pidfd
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_reboot(struct lxc_container *c)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_is_running
      Src: /src/lxc/src/lxc/lxccontainer.c:1980,1
    - Dst: do_lxcapi_init_pidfd
      Src: /src/lxc/src/lxc/lxccontainer.c:1983,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:1985,1
    - Dst: lxc_cmd_add_state_client
      Src: /src/lxc/src/lxc/lxccontainer.c:1998,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/lxccontainer.c:2015,1
    - Dst: kill
      Src: /src/lxc/src/lxc/lxccontainer.c:2017,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/lxccontainer.c:2019,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:2020,1
    - Dst: lxc_cmd_sock_rcv_state
      Src: /src/lxc/src/lxc/lxccontainer.c:2025,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:2029,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/lxccontainer.c:2029,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - struct lxc_container*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 1969
    functionDepth: 4
    functionLinenumber: 1969
    functionLinenumberEnd: 2034
    functionName: do_lxcapi_reboot2
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - log_warn
    - kill
    - lxc_state2str
    - lxc_cmd_add_state_client
    - do_lxcapi_is_running
    - do_lxcapi_init_pid
    - TRACE
    - lxc_raw_pidfd_send_signal
    - do_lxcapi_init_pidfd
    - lxc_cmd_sock_rcv_state
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_reboot2(struct lxc_container *c, int timeout)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_is_running
      Src: /src/lxc/src/lxc/lxccontainer.c:2049,1
    - Dst: do_lxcapi_init_pidfd
      Src: /src/lxc/src/lxc/lxccontainer.c:2052,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:2053,1
    - Dst: task_blocks_signal
      Src: /src/lxc/src/lxc/lxccontainer.c:2060,1
    - Dst: lxc_cmd_add_state_client
      Src: /src/lxc/src/lxc/lxccontainer.c:2070,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/lxccontainer.c:2091,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/lxccontainer.c:2094,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:2097,1
    - Dst: poll
      Src: /src/lxc/src/lxc/lxccontainer.c:2105,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:2109,1
    - Dst: kill
      Src: /src/lxc/src/lxc/lxccontainer.c:2112,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/lxccontainer.c:2114,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:2117,1
    - Dst: lxc_cmd_sock_rcv_state
      Src: /src/lxc/src/lxc/lxccontainer.c:2123,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:2127,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/lxccontainer.c:2127,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - struct lxc_container*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2038
    functionDepth: 4
    functionLinenumber: 2038
    functionLinenumberEnd: 2132
    functionName: do_lxcapi_shutdown
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - log_warn
    - lxc_cmd_sock_rcv_state
    - kill
    - lxc_state2str
    - do_lxcapi_is_running
    - lxc_cmd_add_state_client
    - do_lxcapi_init_pid
    - TRACE
    - task_blocks_signal
    - lxc_raw_pidfd_send_signal
    - do_lxcapi_init_pidfd
    - poll
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_shutdown(struct lxc_container *c, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/lxc/src/lxc/lxccontainer.c:2152,1
    - Dst: lxc_va_arg_list_to_argv
      Src: /src/lxc/src/lxc/lxccontainer.c:2153,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/lxccontainer.c:2154,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2156,1
    - Dst: __lxcapi_create
      Src: /src/lxc/src/lxc/lxccontainer.c:2160,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:2163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - c
    - t
    - bdevtype
    - specs
    - flags
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - struct bdev_specs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2136
    functionDepth: 5
    functionLinenumber: 2136
    functionLinenumberEnd: 2166
    functionName: lxcapi_createl
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_va_arg_list_to_argv
    - free
    - va_start
    - va_end
    - ERROR
    - __lxcapi_create
    linkageType: ''
    returnType: bool
    signature: "bool lxcapi_createl(struct lxc_container *c, const char *t,\n\t\tconst
      char *bdevtype, struct bdev_specs *specs, int flags, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2170,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:2171,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2173,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:2174,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2176,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:2177,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2180,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/lxccontainer.c:2185,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:2187,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2190,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:2191,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:2193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - conf
    - key
    argTypes:
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2194
    functionName: do_clear_unexp_config_line
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - clear_unexp_config_line
    - lxc_safe_uint
    - strequal
    - strnequal
    linkageType: ''
    returnType: void
    signature: void do_clear_unexp_config_line(struct lxc_conf *conf, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2205,1
    - Dst: lxc_get_config
      Src: /src/lxc/src/lxc/lxccontainer.c:2208,1
    - Dst: struct lxc_config_t*::clr
      Src: /src/lxc/src/lxc/lxccontainer.c:2210,1
    - Dst: do_clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:2212,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:2214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2196
    functionDepth: 2
    functionLinenumber: 2196
    functionLinenumberEnd: 2216
    functionName: do_lxcapi_clear_config_item
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - container_mem_lock
    - struct lxc_config_t*::clr
    - lxc_get_config
    - container_mem_unlock
    - do_clear_unexp_config_line
    linkageType: ''
    returnType: bool
    signature: "bool do_lxcapi_clear_config_item(struct lxc_container *c,\n\t\t\t\t\tconst
      char *key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:2223,1
    - Dst: try_switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:2228,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/lxccontainer.c:2230,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:2230,1
    - Dst: access
      Src: /src/lxc/src/lxc/lxccontainer.c:2231,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:2232,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:2236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2220
    functionDepth: 2
    functionLinenumber: 2220
    functionLinenumberEnd: 2239
    functionName: enter_net_ns
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - switch_to_ns
    - access
    - do_lxcapi_init_pid
    - geteuid
    - list_empty
    - try_switch_to_ns
    linkageType: ''
    returnType: bool
    signature: bool enter_net_ns(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/lxccontainer.c:2244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2242
    functionDepth: 0
    functionLinenumber: 2242
    functionLinenumberEnd: 2245
    functionName: string_cmp
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int string_cmp(char **first, char **second)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/lxccontainer.c:2251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - second
    argTypes:
    - struct lxc_container**
    - struct lxc_container**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2252
    functionName: container_cmp
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int container_cmp(struct lxc_container **first,\n\t\t\t\tstruct lxc_container
      **second)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:2259,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:2263,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:2265,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxccontainer.c:2267,1
    - Dst: qsort
      Src: /src/lxc/src/lxc/lxccontainer.c:2270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - names
    - cname
    - pos
    argTypes:
    - char***
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2275
    functionName: add_to_array
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - move_ptr
    - realloc
    - strdup
    - qsort
    linkageType: ''
    returnType: bool
    signature: bool add_to_array(char ***names, char *cname, int pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:2282,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:2284,1
    - Dst: qsort
      Src: /src/lxc/src/lxc/lxccontainer.c:2290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - list
    - c
    - pos
    - sort
    argTypes:
    - struct lxc_container***
    - struct lxc_container*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2277
    functionDepth: 1
    functionLinenumber: 2277
    functionLinenumberEnd: 2295
    functionName: add_to_clist
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - realloc
    - ret_set_errno
    - qsort
    linkageType: ''
    returnType: bool
    signature: "bool add_to_clist(struct lxc_container ***list, struct lxc_container
      *c,\n\t\t\t int pos, bool sort)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/lxc/src/lxc/lxccontainer.c:2302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2304
    functionName: get_from_array
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: char
    signature: char **get_from_array(char ***names, char *cname, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_from_array
      Src: /src/lxc/src/lxc/lxccontainer.c:2308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - names
    - cname
    - size
    argTypes:
    - char***
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2312
    functionName: array_contains
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - get_from_array
    linkageType: ''
    returnType: bool
    signature: bool array_contains(char ***names, char *cname, int size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/lxc/src/lxc/lxccontainer.c:2321,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:2322,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:2324,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2326,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2327,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:2328,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/lxccontainer.c:2332,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2338,1
    - Dst: enter_net_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:2340,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2341,1
    - Dst: netns_getifaddrs
      Src: /src/lxc/src/lxc/lxccontainer.c:2346,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2347,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/lxccontainer.c:2354,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2365,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:2366,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2370,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/lxccontainer.c:2372,1
    - Dst: array_contains
      Src: /src/lxc/src/lxc/lxccontainer.c:2375,1
    - Dst: add_to_array
      Src: /src/lxc/src/lxc/lxccontainer.c:2378,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2379,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:2384,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:2386,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:2388,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2393,1
    - Dst: lxc_append_null_to_array
      Src: /src/lxc/src/lxc/lxccontainer.c:2397,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2314
    functionDepth: 3
    functionLinenumber: 2314
    functionLinenumberEnd: 2400
    functionName: do_lxcapi_get_interfaces
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - close
    - netns_getifaddrs
    - add_to_array
    - free
    - enter_net_ns
    - SYSERROR
    - pipe2
    - lxc_write_nointr
    - lxc_append_null_to_array
    - array_contains
    - _exit
    - lxc_read_nointr
    - wait_for_pid
    - call_cleaner
    - ERROR
    - log_error_errno
    - fork
    linkageType: ''
    returnType: char
    signature: char **do_lxcapi_get_interfaces(struct lxc_container *c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/lxc/src/lxc/lxccontainer.c:2414,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:2416,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:2418,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2420,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2421,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2422,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/lxccontainer.c:2427,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2435,1
    - Dst: enter_net_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:2437,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2438,1
    - Dst: netns_getifaddrs
      Src: /src/lxc/src/lxc/lxccontainer.c:2443,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2444,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2457,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2462,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2473,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2475,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/lxccontainer.c:2478,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/lxccontainer.c:2484,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2486,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2497,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:2498,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2502,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/lxccontainer.c:2504,1
    - Dst: add_to_array
      Src: /src/lxc/src/lxc/lxccontainer.c:2507,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2508,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:2513,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:2515,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:2517,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2522,1
    - Dst: lxc_append_null_to_array
      Src: /src/lxc/src/lxc/lxccontainer.c:2526,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2404
    functionDepth: 3
    functionLinenumber: 2404
    functionLinenumberEnd: 2529
    functionName: do_lxcapi_get_ips
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strequal
    - close
    - netns_getifaddrs
    - add_to_array
    - inet_ntop
    - enter_net_ns
    - SYSERROR
    - pipe2
    - call_cleaner
    - lxc_write_nointr
    - free
    - lxc_append_null_to_array
    - _exit
    - lxc_read_nointr
    - wait_for_pid
    - fork
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: char
    signature: "char **do_lxcapi_get_ips(struct lxc_container *c, const char *interface,\n\t\t\t\tconst
      char *family, int scope)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2541,1
    - Dst: lxc_get_config
      Src: /src/lxc/src/lxc/lxccontainer.c:2544,1
    - Dst: struct lxc_config_t*::get
      Src: /src/lxc/src/lxc/lxccontainer.c:2546,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:2548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - c
    - key
    - retv
    - inlen
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2533
    functionDepth: 1
    functionLinenumber: 2533
    functionLinenumberEnd: 2550
    functionName: do_lxcapi_get_config_item
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - struct lxc_config_t*::get
    - container_mem_lock
    - lxc_get_config
    - container_mem_unlock
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_get_config_item(struct lxc_container *c, const char *key,
      char *retv, int inlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2561,1
    - Dst: lxc_cmd_get_config_item
      Src: /src/lxc/src/lxc/lxccontainer.c:2564,1
    - Dst: do_lxcapi_get_config_path
      Src: /src/lxc/src/lxc/lxccontainer.c:2564,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:2565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2567
    functionName: do_lxcapi_get_running_config_item
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - container_mem_lock
    - do_lxcapi_get_config_path
    - container_mem_unlock
    - lxc_cmd_get_config_item
    linkageType: ''
    returnType: char
    signature: char * do_lxcapi_get_running_config_item(struct lxc_container *c, const
      char *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_config_items
      Src: /src/lxc/src/lxc/lxccontainer.c:2577,1
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2582,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2589,1
    - Dst: lxc_list_net
      Src: /src/lxc/src/lxc/lxccontainer.c:2590,1
    - Dst: lxc_list_subkeys
      Src: /src/lxc/src/lxc/lxccontainer.c:2592,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:2594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - c
    - key
    - retv
    - inlen
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2571
    functionDepth: 1
    functionLinenumber: 2571
    functionLinenumberEnd: 2596
    functionName: do_lxcapi_get_keys
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - container_mem_lock
    - lxc_list_net
    - lxc_list_subkeys
    - strnequal
    - lxc_list_config_items
    - container_mem_unlock
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_get_keys(struct lxc_container *c, const char *key, char
      *retv, int inlen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:2610,1
    - Dst: do_lxcapi_load_config
      Src: /src/lxc/src/lxc/lxccontainer.c:2614,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:2614,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:2615,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:2616,1
    - Dst: create_container_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:2620,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:2622,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2628,1
    - Dst: container_disk_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2632,1
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2634,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxccontainer.c:2636,1
    - Dst: open
      Src: /src/lxc/src/lxc/lxccontainer.c:2638,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2641,1
    - Dst: write_config
      Src: /src/lxc/src/lxc/lxccontainer.c:2645,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2647,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:2652,1
    - Dst: container_disk_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:2656,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:2658,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - c
    - alt_file
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2600
    functionDepth: 3
    functionLinenumber: 2600
    functionLinenumberEnd: 2661
    functionName: do_lxcapi_save_config
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - do_lxcapi_load_config
    - container_mem_lock
    - strequal
    - write_config
    - log_error
    - SYSERROR
    - container_disk_lock
    - create_container_dir
    - lxc_global_config_value
    - TRACE
    - container_disk_unlock
    - container_mem_unlock
    - open
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_save_config(struct lxc_container *c, const char *alt_file)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: container_disk_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2679,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:2682,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:2686,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:2692,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/lxccontainer.c:2694,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:2695,1
    - Dst: remove
      Src: /src/lxc/src/lxc/lxccontainer.c:2697,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2699,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:2707,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:2711,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2712,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:2713,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:2717,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2719,1
    - Dst: open
      Src: /src/lxc/src/lxc/lxccontainer.c:2726,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/lxccontainer.c:2730,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:2730,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2732,1
    - Dst: open
      Src: /src/lxc/src/lxc/lxccontainer.c:2736,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/lxccontainer.c:2740,1
    - Dst: lxc_strmmap
      Src: /src/lxc/src/lxc/lxccontainer.c:2744,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2746,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:2750,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/lxccontainer.c:2751,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/lxccontainer.c:2752,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:2752,1
    - Dst: lxc_strmunmap
      Src: /src/lxc/src/lxc/lxccontainer.c:2756,1
    - Dst: ftruncate
      Src: /src/lxc/src/lxc/lxccontainer.c:2757,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2758,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/lxccontainer.c:2765,1
    - Dst: remove
      Src: /src/lxc/src/lxc/lxccontainer.c:2769,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2771,1
    - Dst: container_disk_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:2778,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 95
    argCount: 3
    argNames:
    - c0
    - c
    - inc
    argTypes:
    - struct lxc_container*
    - struct lxc_container*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2666
    functionDepth: 1
    functionLinenumber: 2666
    functionLinenumberEnd: 2780
    functionName: mod_rdep
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - fprintf
    - lxc_strmmap
    - container_disk_unlock
    - memmove
    - remove
    - fopen
    - ftruncate
    - strlen
    - container_disk_lock
    - strstr
    - open
    - lxc_strmunmap
    - SYSERROR
    - lxc_write_nointr
    - strnprintf
    - fscanf
    - fclose
    - fstat
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool mod_rdep(struct lxc_container *c0, struct lxc_container *c, bool
      inc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:2791,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2794,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:2798,1
    - Dst: getline
      Src: /src/lxc/src/lxc/lxccontainer.c:2802,1
    - Dst: getline
      Src: /src/lxc/src/lxc/lxccontainer.c:2803,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2804,1
    - Dst: remove_trailing_newlines
      Src: /src/lxc/src/lxc/lxccontainer.c:2808,1
    - Dst: remove_trailing_newlines
      Src: /src/lxc/src/lxc/lxccontainer.c:2809,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/lxccontainer.c:2811,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2812,1
    - Dst: mod_rdep
      Src: /src/lxc/src/lxc/lxccontainer.c:2817,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2818,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:2821,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - c
    - inc
    argTypes:
    - struct lxc_container*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2782
    functionDepth: 3
    functionLinenumber: 2782
    functionLinenumberEnd: 2823
    functionName: mod_all_rdeps
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - remove_trailing_newlines
    - lxc_container_new
    - lxc_container_put
    - getline
    - mod_rdep
    - ERROR
    - fopen
    linkageType: ''
    returnType: void
    signature: void mod_all_rdeps(struct lxc_container *c, bool inc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:2832,1
    - Dst: stat
      Src: /src/lxc/src/lxc/lxccontainer.c:2838,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:2843,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/lxccontainer.c:2847,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:2849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2825
    functionDepth: 1
    functionLinenumber: 2825
    functionLinenumberEnd: 2853
    functionName: has_fs_snapshots
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - stat
    - strnprintf
    - fscanf
    - INFO
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool has_fs_snapshots(struct lxc_container *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_snappath_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:2862,1
    - Dst: opendir
      Src: /src/lxc/src/lxc/lxccontainer.c:2865,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/lxccontainer.c:2869,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2870,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:2873,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2855
    functionDepth: 1
    functionLinenumber: 2855
    functionLinenumberEnd: 2880
    functionName: has_snapshots
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - get_snappath_dir
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool has_snapshots(struct lxc_container *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:2885,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/lxccontainer.c:2886,1
    - Dst: storage_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:2894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2882
    functionDepth: 1
    functionLinenumber: 2882
    functionLinenumberEnd: 2895
    functionName: do_destroy_container
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - userns_exec_full
    - am_guest_unpriv
    - storage_destroy
    linkageType: ''
    returnType: bool
    signature: bool do_destroy_container(struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_rmdir_onedev
      Src: /src/lxc/src/lxc/lxccontainer.c:2900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2897
    functionDepth: 3
    functionLinenumber: 2897
    functionLinenumberEnd: 2901
    functionName: lxc_rmdir_onedev_wrapper
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_rmdir_onedev
    linkageType: ''
    returnType: int
    signature: int lxc_rmdir_onedev_wrapper(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/lxc/src/lxc/lxccontainer.c:2906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2903
    functionDepth: 0
    functionLinenumber: 2903
    functionLinenumberEnd: 2907
    functionName: lxc_unlink_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - unlink
    linkageType: ''
    returnType: int
    signature: int lxc_unlink_exec_wrapper(void *data)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:2919,1
    - Dst: container_disk_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:2923,1
    - Dst: is_stopped
      Src: /src/lxc/src/lxc/lxccontainer.c:2926,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2928,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:2932,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:2934,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2935,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:2937,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2938,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:2940,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2941,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:2943,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2944,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:2946,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2947,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:2949,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2950,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/lxccontainer.c:2953,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2954,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:2963,1
    - Dst: do_destroy_container
      Src: /src/lxc/src/lxc/lxccontainer.c:2973,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2974,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:2977,1
    - Dst: mod_all_rdeps
      Src: /src/lxc/src/lxc/lxccontainer.c:2980,1
    - Dst: do_lxcapi_get_config_path
      Src: /src/lxc/src/lxc/lxccontainer.c:2982,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:2995,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:2995,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:2995,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:2996,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:2998,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:3005,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:3006,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3008,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:3012,1
    - Dst: userns_exec_1
      Src: /src/lxc/src/lxc/lxccontainer.c:3013,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/lxccontainer.c:3016,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3018,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:3022,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3028,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:3032,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/lxccontainer.c:3033,1
    - Dst: lxc_rmdir_onedev
      Src: /src/lxc/src/lxc/lxccontainer.c:3036,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3038,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:3042,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3049,1
    - Dst: container_disk_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:3051,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 97
    argCount: 2
    argNames:
    - c
    - storage
    argTypes:
    - struct lxc_container*
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3053
      start: 2909
    functionDepth: 4
    functionLinenumber: 2909
    functionLinenumberEnd: 3053
    functionName: container_destroy
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - close
    - mod_all_rdeps
    - container_disk_unlock
    - do_lxcapi_get_config_path
    - setenv
    - do_destroy_container
    - userns_exec_1
    - is_stopped
    - free
    - strlen
    - container_disk_lock
    - lxc_rmdir_onedev
    - userns_exec_full
    - strequal
    - do_lxcapi_is_defined
    - am_guest_unpriv
    - SYSERROR
    - unlink
    - run_lxc_hooks
    - strnprintf
    - INFO
    - ERROR
    - list_empty
    - malloc
    linkageType: ''
    returnType: bool
    signature: "bool container_destroy(struct lxc_container *c,\n\t\t\t      struct
      lxc_storage *storage)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:3057,1
    - Dst: has_snapshots
      Src: /src/lxc/src/lxc/lxccontainer.c:3061,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3062,1
    - Dst: has_fs_snapshots
      Src: /src/lxc/src/lxc/lxccontainer.c:3066,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3067,1
    - Dst: container_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:3072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3055
    functionDepth: 5
    functionLinenumber: 3055
    functionLinenumberEnd: 3073
    functionName: do_lxcapi_destroy
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - has_fs_snapshots
    - has_snapshots
    - container_destroy
    - lxcapi_is_defined
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_destroy(struct lxc_container *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:3079,1
    - Dst: lxcapi_snapshot_destroy_all
      Src: /src/lxc/src/lxc/lxccontainer.c:3082,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3083,1
    - Dst: lxcapi_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:3087,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3077
    functionDepth: 1
    functionLinenumber: 3077
    functionLinenumberEnd: 3088
    functionName: do_lxcapi_destroy_with_snapshots
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxcapi_is_defined
    - ERROR
    - lxcapi_destroy
    - lxcapi_snapshot_destroy_all
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_destroy_with_snapshots(struct lxc_container *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_config
      Src: /src/lxc/src/lxc/lxccontainer.c:3099,1
    - Dst: struct lxc_config_t*::set
      Src: /src/lxc/src/lxc/lxccontainer.c:3101,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:3105,1
    - Dst: do_clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3106,1
    - Dst: do_append_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - conf
    - key
    - v
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3092
    functionDepth: 2
    functionLinenumber: 3092
    functionLinenumberEnd: 3113
    functionName: lxc_set_config_item_locked
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - struct lxc_config_t*::set
    - lxc_get_config
    - lxc_config_value_empty
    - do_clear_unexp_config_line
    - do_append_unexp_config_line
    linkageType: ''
    returnType: int
    signature: "int lxc_set_config_item_locked(struct lxc_conf *conf, const char *key,\n\t\t\t
      \      const char *v)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_conf_init
      Src: /src/lxc/src/lxc/lxccontainer.c:3121,1
    - Dst: lxc_set_config_item_locked
      Src: /src/lxc/src/lxc/lxccontainer.c:3126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - c
    - key
    - v
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3115
    functionDepth: 3
    functionLinenumber: 3115
    functionLinenumberEnd: 3131
    functionName: do_set_config_item_locked
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_set_config_item_locked
    - lxc_conf_init
    linkageType: ''
    returnType: bool
    signature: "bool do_set_config_item_locked(struct lxc_container *c, const char
      *key,\n\t\t\t\t      const char *v)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:3140,1
    - Dst: do_set_config_item_locked
      Src: /src/lxc/src/lxc/lxccontainer.c:3143,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:3145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - c
    - key
    - v
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3133
    functionDepth: 4
    functionLinenumber: 3133
    functionLinenumberEnd: 3147
    functionName: do_lxcapi_set_config_item
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - do_set_config_item_locked
    - container_mem_lock
    - container_mem_unlock
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_set_config_item(struct lxc_container *c, const char
      *key, const char *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:3156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3151
    functionDepth: 0
    functionLinenumber: 3151
    functionLinenumberEnd: 3157
    functionName: lxcapi_config_file_name
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strdup
    linkageType: ''
    returnType: char
    signature: char *lxcapi_config_file_name(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3159
    functionDepth: 0
    functionLinenumber: 3159
    functionLinenumberEnd: 3165
    functionName: lxcapi_get_config_path
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxcapi_get_config_path(struct lxc_container *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3182,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3182,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3182,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:3183,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3187,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3189,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3190,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3173
    functionDepth: 1
    functionLinenumber: 3173
    functionLinenumberEnd: 3198
    functionName: set_config_filename
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - fprintf
    - free
    - strlen
    - malloc
    linkageType: ''
    returnType: bool
    signature: bool set_config_filename(struct lxc_container *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:3209,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:3212,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3214,1
    - Dst: set_config_filename
      Src: /src/lxc/src/lxc/lxccontainer.c:3225,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3226,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3228,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3234,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:3235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - c
    - path
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 3200
    functionDepth: 2
    functionLinenumber: 3200
    functionLinenumberEnd: 3237
    functionName: do_lxcapi_set_config_path
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - container_mem_lock
    - free
    - set_config_filename
    - strdup
    - container_mem_unlock
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_set_config_path(struct lxc_container *c, const char
      *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/lxccontainer.c:3243,1
    - Dst: is_stopped
      Src: /src/lxc/src/lxc/lxccontainer.c:3249,1
    - Dst: cgroup_set
      Src: /src/lxc/src/lxc/lxccontainer.c:3252,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/lxccontainer.c:3253,1
    - Dst: cgroup_init
      Src: /src/lxc/src/lxc/lxccontainer.c:3254,1
    - Dst: struct cgroup_ops*::set
      Src: /src/lxc/src/lxc/lxccontainer.c:3258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - c
    - subsys
    - value
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3241
    functionDepth: 3
    functionLinenumber: 3241
    functionLinenumberEnd: 3262
    functionName: do_lxcapi_set_cgroup_item
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - cgroup_set
    - is_stopped
    - cgroup_init
    - call_cleaner
    - ERRNO_IS_NOT_SUPPORTED
    - struct cgroup_ops*::set
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_set_cgroup_item(struct lxc_container *c, const char
      *subsys, const char *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/lxccontainer.c:3268,1
    - Dst: is_stopped
      Src: /src/lxc/src/lxc/lxccontainer.c:3274,1
    - Dst: cgroup_get
      Src: /src/lxc/src/lxc/lxccontainer.c:3277,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/lxccontainer.c:3278,1
    - Dst: cgroup_init
      Src: /src/lxc/src/lxc/lxccontainer.c:3279,1
    - Dst: struct cgroup_ops*::get
      Src: /src/lxc/src/lxc/lxccontainer.c:3283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - c
    - subsys
    - retv
    - inlen
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3266
    functionDepth: 3
    functionLinenumber: 3266
    functionLinenumberEnd: 3287
    functionName: do_lxcapi_get_cgroup_item
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - is_stopped
    - cgroup_get
    - struct cgroup_ops*::get
    - cgroup_init
    - call_cleaner
    - ERRNO_IS_NOT_SUPPORTED
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_get_cgroup_item(struct lxc_container *c, const char *subsys,
      char *retv, int inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:3293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3294
      start: 3291
    functionDepth: 1
    functionLinenumber: 3291
    functionLinenumberEnd: 3294
    functionName: lxc_get_global_config_item
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - lxc_global_config_value
    linkageType: ''
    returnType: char
    signature: char *lxc_get_global_config_item(const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3296
    functionDepth: 0
    functionLinenumber: 3296
    functionLinenumberEnd: 3299
    functionName: lxc_get_version
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_get_version(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3301
    functionDepth: 0
    functionLinenumber: 3301
    functionLinenumberEnd: 3311
    functionName: copy_file
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int copy_file(const char *old, const char *new)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3353,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3353,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:3354,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:3356,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3358,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/lxccontainer.c:3363,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/lxccontainer.c:3368,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:3373,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3377,1
    - Dst: copy_file
      Src: /src/lxc/src/lxc/lxccontainer.c:3382,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:3386,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/lxccontainer.c:3388,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxccontainer.c:3390,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxccontainer.c:3391,1
    - Dst: clone_update_unexp_hooks
      Src: /src/lxc/src/lxc/lxccontainer.c:3395,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/lxccontainer.c:3397,1
    - Dst: do_lxcapi_save_config
      Src: /src/lxc/src/lxc/lxccontainer.c:3400,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - oldc
    - c
    argTypes:
    - struct lxc_container*
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3347
    functionDepth: 4
    functionLinenumber: 3347
    functionLinenumberEnd: 3402
    functionName: copyhooks
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - syserror
    - strnprintf
    - do_lxcapi_save_config
    - ret_errno
    - strnequal
    - strrchr
    - move_ptr
    - strlen
    - copy_file
    - clone_update_unexp_hooks
    - syserror_ret
    - list_for_each_entry
    - strdup
    - malloc
    linkageType: ''
    returnType: int
    signature: int copyhooks(struct lxc_container *oldc, struct lxc_container *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3413,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/lxccontainer.c:3415,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3419,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3422,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:3426,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3427,1
    - Dst: copy_file
      Src: /src/lxc/src/lxc/lxccontainer.c:3431,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3432,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3436,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:3438,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3440,1
    - Dst: do_append_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3444,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - oldc
    - c
    argTypes:
    - struct lxc_container*
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3404
    functionDepth: 1
    functionLinenumber: 3404
    functionLinenumberEnd: 3450
    functionName: copy_fstab
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - free
    - strrchr
    - file_exists
    - copy_file
    - strdup
    - clear_unexp_config_line
    - ERROR
    - do_append_unexp_config_line
    linkageType: ''
    returnType: int
    signature: int copy_fstab(struct lxc_container *oldc, struct lxc_container *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3457,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/lxccontainer.c:3460,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3464,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/lxccontainer.c:3467,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:3471,1
    - Dst: copy_file
      Src: /src/lxc/src/lxc/lxccontainer.c:3475,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:3476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - c
    - c0
    argTypes:
    - struct lxc_container*
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3479
      start: 3452
    functionDepth: 1
    functionLinenumber: 3452
    functionLinenumberEnd: 3479
    functionName: copy_rdepends
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - WARN
    - strnprintf
    - file_exists
    - copy_file
    - INFO
    linkageType: ''
    returnType: void
    signature: void copy_rdepends(struct lxc_container *c, struct lxc_container *c0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3487,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:3491,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - c0
    argTypes:
    - struct lxc_container*
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3497
      start: 3481
    functionDepth: 1
    functionLinenumber: 3481
    functionLinenumberEnd: 3497
    functionName: add_rdepends
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - fopen
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool add_rdepends(struct lxc_container *c, struct lxc_container *c0)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3509,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3509,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3510,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:3510,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:3513,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:3514,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3515,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3519,1
    - Dst: is_btrfs_fs
      Src: /src/lxc/src/lxc/lxccontainer.c:3523,1
    - Dst: is_btrfs_fs
      Src: /src/lxc/src/lxc/lxccontainer.c:3523,1
    - Dst: is_btrfs_subvol
      Src: /src/lxc/src/lxc/lxccontainer.c:3526,1
    - Dst: btrfs_same_fs
      Src: /src/lxc/src/lxc/lxccontainer.c:3529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - c0
    - c1
    argTypes:
    - struct lxc_container*
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3530
      start: 3504
    functionDepth: 1
    functionLinenumber: 3504
    functionLinenumberEnd: 3530
    functionName: should_default_to_snapshot
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - is_btrfs_subvol
    - btrfs_same_fs
    - strlen
    - is_btrfs_fs
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: "bool should_default_to_snapshot(struct lxc_container *c0,\n\t\t\t\tstruct
      lxc_container *c1)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: should_default_to_snapshot
      Src: /src/lxc/src/lxc/lxccontainer.c:3539,1
    - Dst: storage_copy
      Src: /src/lxc/src/lxc/lxccontainer.c:3542,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3545,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3550,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:3551,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3552,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3555,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3560,1
    - Dst: do_append_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3561,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3563,1
    - Dst: copy_rdepends
      Src: /src/lxc/src/lxc/lxccontainer.c:3568,1
    - Dst: add_rdepends
      Src: /src/lxc/src/lxc/lxccontainer.c:3571,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/lxccontainer.c:3572,1
    - Dst: mod_all_rdeps
      Src: /src/lxc/src/lxc/lxccontainer.c:3576,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - c0
    - c
    - newtype
    - flags
    - bdevdata
    - newsize
    argTypes:
    - struct lxc_container*
    - struct lxc_container*
    - char*
    - int
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3579
      start: 3532
    functionDepth: 4
    functionLinenumber: 3532
    functionLinenumberEnd: 3579
    functionName: copy_storage
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - WARN
    - free
    - mod_all_rdeps
    - add_rdepends
    - should_default_to_snapshot
    - storage_put
    - storage_copy
    - copy_rdepends
    - ERROR
    - clear_unexp_config_line
    - strdup
    - do_append_unexp_config_line
    linkageType: ''
    returnType: int
    signature: "int copy_storage(struct lxc_container *c0, struct lxc_container *c,\n\t\t\tconst
      char *newtype, int flags, const char *bdevdata,\n\t\t\tuint64_t newsize)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/lxccontainer.c:3603,1
    - Dst: setgid
      Src: /src/lxc/src/lxc/lxccontainer.c:3605,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3606,1
    - Dst: setuid
      Src: /src/lxc/src/lxc/lxccontainer.c:3610,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3611,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/lxccontainer.c:3615,1
    - Dst: lxc_storage_prepare
      Src: /src/lxc/src/lxc/lxccontainer.c:3618,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:3623,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/lxccontainer.c:3624,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3625,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3626,1
    - Dst: detect_shared_rootfs
      Src: /src/lxc/src/lxc/lxccontainer.c:3630,1
    - Dst: mount
      Src: /src/lxc/src/lxc/lxccontainer.c:3630,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3631,1
    - Dst: struct lxc_storage*::ops::mount
      Src: /src/lxc/src/lxc/lxccontainer.c:3633,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3634,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3638,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:3639,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/lxccontainer.c:3639,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:3642,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:3644,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3645,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:3647,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3648,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:3650,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3651,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:3653,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3654,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/lxccontainer.c:3656,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3657,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/lxccontainer.c:3659,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3660,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3661,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3667,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3668,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:3673,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:3676,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3677,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3681,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:3682,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:3686,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3689,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct clone_update_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3693
      start: 3588
    functionDepth: 3
    functionLinenumber: 3588
    functionLinenumberEnd: 3693
    functionName: clone_update_rootfs
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - setgid
    - fprintf
    - ERROR
    - fopen
    - mount
    - lxc_storage_put
    - setenv
    - free
    - struct lxc_storage*::ops::mount
    - lxc_storage_get_path
    - detect_shared_rootfs
    - lxc_storage_prepare
    - strequal
    - SYSERROR
    - run_lxc_hooks
    - strnprintf
    - fclose
    - lxc_drop_groups
    - unshare
    - file_exists
    - strdup
    - list_empty
    - setuid
    linkageType: ''
    returnType: int
    signature: int clone_update_rootfs(struct clone_update_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clone_update_rootfs
      Src: /src/lxc/src/lxc/lxccontainer.c:3698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3695
    functionDepth: 4
    functionLinenumber: 3695
    functionLinenumberEnd: 3699
    functionName: clone_update_rootfs_wrapper
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - clone_update_rootfs
    linkageType: ''
    returnType: int
    signature: int clone_update_rootfs_wrapper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/lxc/src/lxc/lxccontainer.c:3717,1
    - Dst: do_create_container_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:3722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - path
    - conf
    argTypes:
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3712
    functionDepth: 2
    functionLinenumber: 3712
    functionLinenumberEnd: 3726
    functionName: create_file_dirname
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strrchr
    - do_create_container_dir
    linkageType: ''
    returnType: int
    signature: int create_file_dirname(char *path, struct lxc_conf *conf)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:3742,1
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/lxccontainer.c:3745,1
    - Dst: is_stopped
      Src: /src/lxc/src/lxc/lxccontainer.c:3747,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3748,1
    - Dst: do_lxcapi_get_config_path
      Src: /src/lxc/src/lxc/lxccontainer.c:3757,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3759,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3761,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:3765,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3766,1
    - Dst: create_file_dirname
      Src: /src/lxc/src/lxc/lxccontainer.c:3770,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3772,1
    - Dst: open
      Src: /src/lxc/src/lxc/lxccontainer.c:3782,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3785,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:3791,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:3793,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3797,1
    - Dst: write_config
      Src: /src/lxc/src/lxc/lxccontainer.c:3798,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:3799,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:3803,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:3808,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3810,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/lxccontainer.c:3814,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3822,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:3827,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/lxccontainer.c:3828,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3829,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/lxccontainer.c:3834,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3836,1
    - Dst: copy_storage
      Src: /src/lxc/src/lxc/lxccontainer.c:3842,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3848,1
    - Dst: clear_unexp_config_line
      Src: /src/lxc/src/lxc/lxccontainer.c:3849,1
    - Dst: do_set_config_item_locked
      Src: /src/lxc/src/lxc/lxccontainer.c:3851,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3852,1
    - Dst: copyhooks
      Src: /src/lxc/src/lxc/lxccontainer.c:3858,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3860,1
    - Dst: copy_fstab
      Src: /src/lxc/src/lxc/lxccontainer.c:3864,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3865,1
    - Dst: network_new_hwaddrs
      Src: /src/lxc/src/lxc/lxccontainer.c:3871,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3872,1
    - Dst: ovl_update_abs_paths
      Src: /src/lxc/src/lxc/lxccontainer.c:3878,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/lxc/lxccontainer.c:3886,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:3889,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3890,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:3895,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:3899,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:3908,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/lxccontainer.c:3909,1
    - Dst: clone_update_rootfs
      Src: /src/lxc/src/lxc/lxccontainer.c:3912,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:3914,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:3916,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:3917,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/lxccontainer.c:3920,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:3925,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3926,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 156
    argCount: 8
    argNames:
    - c
    - newname
    - lxcpath
    - flags
    - bdevtype
    - bdevdata
    - newsize
    - hookargs
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - int
    - char*
    - char*
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3728
    functionDepth: 5
    functionLinenumber: 3728
    functionLinenumberEnd: 3930
    functionName: do_lxcapi_clone
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - close
    - do_set_config_item_locked
    - lxc_container_new
    - chown_mapped_root
    - container_mem_unlock
    - wait_for_pid
    - ERROR
    - clear_unexp_config_line
    - do_lxcapi_get_config_path
    - container_mem_lock
    - copy_fstab
    - is_stopped
    - free
    - struct lxc_container*::save_config
    - struct lxc_container*::destroy
    - create_file_dirname
    - open
    - userns_exec_full
    - do_lxcapi_is_defined
    - am_guest_unpriv
    - SYSERROR
    - copy_storage
    - network_new_hwaddrs
    - mkdir
    - strnprintf
    - write_config
    - ovl_update_abs_paths
    - file_exists
    - lxc_container_put
    - copyhooks
    - _exit
    - clone_update_rootfs
    - fork
    - strdup
    linkageType: ''
    returnType: struct lxc_container
    signature: "struct lxc_container *do_lxcapi_clone(struct lxc_container *c, const
      char *newname,\n\t\tconst char *lxcpath, int flags,\n\t\tconst char *bdevtype,
      const char *bdevdata, uint64_t newsize,\n\t\tchar **hookargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_clone
      Src: /src/lxc/src/lxc/lxccontainer.c:3940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - c
    - newname
    - lxcpath
    - flags
    - bdevtype
    - bdevdata
    - newsize
    - hookargs
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - int
    - char*
    - char*
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3932
    functionDepth: 6
    functionLinenumber: 3932
    functionLinenumberEnd: 3944
    functionName: lxcapi_clone
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - do_lxcapi_clone
    linkageType: ''
    returnType: struct lxc_container
    signature: "struct lxc_container *lxcapi_clone(struct lxc_container *c, const
      char *newname,\n\t\tconst char *lxcpath, int flags,\n\t\tconst char *bdevtype,
      const char *bdevdata, uint64_t newsize,\n\t\tchar **hookargs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: has_fs_snapshots
      Src: /src/lxc/src/lxc/lxccontainer.c:3954,1
    - Dst: has_snapshots
      Src: /src/lxc/src/lxc/lxccontainer.c:3954,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3955,1
    - Dst: lxc_storage_prepare
      Src: /src/lxc/src/lxc/lxccontainer.c:3959,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3960,1
    - Dst: lxcapi_clone
      Src: /src/lxc/src/lxc/lxccontainer.c:3965,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3966,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3968,1
    - Dst: lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:3972,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:3973,1
    - Dst: container_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:3975,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:3976,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - c
    - newname
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3981
      start: 3946
    functionDepth: 7
    functionLinenumber: 3946
    functionLinenumberEnd: 3981
    functionName: do_lxcapi_rename
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxcapi_clone
    - has_fs_snapshots
    - lxc_storage_put
    - has_snapshots
    - lxc_container_put
    - container_destroy
    - lxcapi_is_defined
    - ERROR
    - lxc_storage_prepare
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_rename(struct lxc_container *c, const char *newname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_attach
      Src: /src/lxc/src/lxc/lxccontainer.c:3996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - c
    - exec_function
    - exec_payload
    - options
    - attached_process
    argTypes:
    - struct lxc_container*
    - lxc_attach_exec_t
    - void*
    - lxc_attach_options_t*
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3985
    functionDepth: 1
    functionLinenumber: 3985
    functionLinenumberEnd: 4000
    functionName: lxcapi_attach
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_attach
    linkageType: ''
    returnType: int
    signature: "int lxcapi_attach(struct lxc_container *c,\n\t\t\t lxc_attach_exec_t
      exec_function, void *exec_payload,\n\t\t\t lxc_attach_options_t *options, pid_t
      *attached_process)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_attach
      Src: /src/lxc/src/lxc/lxccontainer.c:4017,1
    - Dst: lxc_wait_for_pid_status
      Src: /src/lxc/src/lxc/lxccontainer.c:4021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - c
    - options
    - program
    - argv
    argTypes:
    - struct lxc_container*
    - lxc_attach_options_t*
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4022
      start: 4002
    functionDepth: 1
    functionLinenumber: 4002
    functionLinenumberEnd: 4022
    functionName: do_lxcapi_attach_run_wait
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_wait_for_pid_status
    - lxc_attach
    linkageType: ''
    returnType: int
    signature: "int do_lxcapi_attach_run_wait(struct lxc_container *c,\n\t\t\t\t     lxc_attach_options_t
      *options,\n\t\t\t\t     const char *program,\n\t\t\t\t     const char *const
      argv[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_attach_run_wait
      Src: /src/lxc/src/lxc/lxccontainer.c:4031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - c
    - options
    - program
    - argv
    argTypes:
    - struct lxc_container*
    - lxc_attach_options_t*
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4035
      start: 4024
    functionDepth: 2
    functionLinenumber: 4024
    functionLinenumberEnd: 4035
    functionName: lxcapi_attach_run_wait
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - do_lxcapi_attach_run_wait
    linkageType: ''
    returnType: int
    signature: "int lxcapi_attach_run_wait(struct lxc_container *c,\n\t\t\t\t  lxc_attach_options_t
      *options,\n\t\t\t\t  const char *program, const char *const argv[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:4043,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4043,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4046,1
    - Dst: stat
      Src: /src/lxc/src/lxc/lxccontainer.c:4048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - lxcpath
    - cname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4054
      start: 4037
    functionDepth: 1
    functionLinenumber: 4037
    functionLinenumberEnd: 4054
    functionName: get_next_index
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - stat
    - sprintf
    - strlen
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int get_next_index(const char *lxcpath, char *cname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4064,1
    - Dst: dir_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:4068,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4069,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - c
    - snappath
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4056
    functionDepth: 2
    functionLinenumber: 4056
    functionLinenumberEnd: 4085
    functionName: get_snappath_dir
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - strnprintf
    - dir_exists
    linkageType: ''
    returnType: bool
    signature: bool get_snappath_dir(struct lxc_container *c, char *snappath)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:4099,1
    - Dst: storage_can_backup
      Src: /src/lxc/src/lxc/lxccontainer.c:4102,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4103,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4104,1
    - Dst: get_snappath_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:4108,1
    - Dst: get_next_index
      Src: /src/lxc/src/lxc/lxccontainer.c:4111,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/lxccontainer.c:4113,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4114,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4118,1
    - Dst: storage_lxc_is_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:4128,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4129,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4130,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4131,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4132,1
    - Dst: do_lxcapi_clone
      Src: /src/lxc/src/lxc/lxccontainer.c:4136,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4138,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4142,1
    - Dst: time
      Src: /src/lxc/src/lxc/lxccontainer.c:4145,1
    - Dst: localtime_r
      Src: /src/lxc/src/lxc/lxccontainer.c:4147,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4148,1
    - Dst: strftime
      Src: /src/lxc/src/lxc/lxccontainer.c:4152,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4154,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4154,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4154,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:4155,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4156,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:4159,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4161,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4165,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4166,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:4167,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lxccontainer.c:4171,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4173,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4180,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4180,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4180,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:4182,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4183,1
    - Dst: copy_file
      Src: /src/lxc/src/lxc/lxccontainer.c:4186,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 2
    argNames:
    - c
    - commentfile
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4190
      start: 4087
    functionDepth: 6
    functionLinenumber: 4087
    functionLinenumberEnd: 4190
    functionName: do_lxcapi_snapshot
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fopen
    - must_realloc
    - get_snappath_dir
    - localtime_r
    - lxc_mkdir_p
    - strlen
    - copy_file
    - do_lxcapi_clone
    - strftime
    - SYSERROR
    - storage_can_backup
    - lxcapi_is_defined
    - time
    - strnprintf
    - fclose
    - storage_lxc_is_dir
    - lxc_container_put
    - get_next_index
    - ERROR
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_snapshot(struct lxc_container *c, const char *commentfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4196,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4197,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4198,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct lxc_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4200
      start: 4194
    functionDepth: 0
    functionLinenumber: 4194
    functionLinenumberEnd: 4200
    functionName: lxcsnap_free
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void lxcsnap_free(struct lxc_snapshot *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4206,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:4206,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:4208,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4212,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxccontainer.c:4216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - snappath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4217
      start: 4202
    functionDepth: 1
    functionLinenumber: 4202
    functionLinenumberEnd: 4217
    functionName: get_snapcomment_path
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - move_ptr
    - strlen
    - malloc
    linkageType: ''
    returnType: char
    signature: char *get_snapcomment_path(char *snappath, char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4226,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:4230,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/lxccontainer.c:4234,1
    - Dst: ftell
      Src: /src/lxc/src/lxc/lxccontainer.c:4235,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/lxccontainer.c:4236,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:4238,1
    - Dst: fread
      Src: /src/lxc/src/lxc/lxccontainer.c:4243,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:4245,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxccontainer.c:4249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - snappath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4250
      start: 4219
    functionDepth: 1
    functionLinenumber: 4219
    functionLinenumberEnd: 4250
    functionName: get_timestamp
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - fopen
    - move_ptr
    - fseek
    - fread
    - log_error_errno
    - ftell
    - malloc
    linkageType: ''
    returnType: char
    signature: char *get_timestamp(char* snappath, char *name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:4260,1
    - Dst: get_snappath_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:4263,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4264,1
    - Dst: opendir
      Src: /src/lxc/src/lxc/lxccontainer.c:4268,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:4270,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/lxccontainer.c:4274,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4275,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4278,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4281,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4283,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:4287,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/lxccontainer.c:4290,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4292,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:4298,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:4302,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4304,1
    - Dst: get_snapcomment_path
      Src: /src/lxc/src/lxc/lxccontainer.c:4308,1
    - Dst: get_timestamp
      Src: /src/lxc/src/lxc/lxccontainer.c:4309,1
    - Dst: lxcsnap_free
      Src: /src/lxc/src/lxc/lxccontainer.c:4319,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4321,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 2
    argNames:
    - c
    - ret_snaps
    argTypes:
    - struct lxc_container*
    - struct lxc_snapshot**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4325
      start: 4252
    functionDepth: 3
    functionLinenumber: 4252
    functionLinenumberEnd: 4325
    functionName: do_lxcapi_snapshot_list
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - get_snappath_dir
    - strequal
    - strnprintf
    - lxcsnap_free
    - free
    - file_exists
    - SYSERROR
    - realloc
    - INFO
    - strdup
    - get_snapcomment_path
    - lxcapi_is_defined
    - get_timestamp
    - ERROR
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_snapshot_list(struct lxc_container *c, struct lxc_snapshot
      **ret_snaps)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: has_fs_snapshots
      Src: /src/lxc/src/lxc/lxccontainer.c:4340,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4341,1
    - Dst: lxc_storage_prepare
      Src: /src/lxc/src/lxc/lxccontainer.c:4345,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4346,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4356,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4356,1
    - Dst: get_snappath_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:4362,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4363,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/lxccontainer.c:4368,1
    - Dst: lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:4369,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4370,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4373,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4375,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4379,1
    - Dst: container_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:4380,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4381,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4382,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4383,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4388,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4388,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4391,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4391,1
    - Dst: lxcapi_clone
      Src: /src/lxc/src/lxc/lxccontainer.c:4394,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4396,1
    - Dst: lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:4397,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4401,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4403,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 3
    argNames:
    - c
    - snapname
    - newname
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4329
    functionDepth: 7
    functionLinenumber: 4329
    functionLinenumberEnd: 4405
    functionName: do_lxcapi_snapshot_restore
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxcapi_clone
    - has_fs_snapshots
    - lxc_storage_put
    - get_snappath_dir
    - strequal
    - lxc_container_new
    - lxc_container_put
    - container_destroy
    - lxcapi_is_defined
    - ERROR
    - lxc_storage_prepare
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_snapshot_restore(struct lxc_container *c, const char
      *snapname, const char *newname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/lxccontainer.c:4414,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4416,1
    - Dst: do_lxcapi_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:4420,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4421,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:4429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - snapname
    - clonelxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4409
    functionDepth: 6
    functionLinenumber: 4409
    functionLinenumberEnd: 4432
    functionName: do_snapshot_destroy
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_container_new
    - do_lxcapi_destroy
    - lxc_container_put
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool do_snapshot_destroy(const char *snapname, const char *clonelxcpath)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/lxccontainer.c:4440,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4442,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/lxccontainer.c:4446,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4447,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:4450,1
    - Dst: do_snapshot_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:4453,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/lxccontainer.c:4459,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4463
      start: 4434
    functionDepth: 1
    functionLinenumber: 4434
    functionLinenumberEnd: 4463
    functionName: remove_all_snapshots
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - strequal
    - SYSERROR
    - rmdir
    - do_snapshot_destroy
    linkageType: ''
    returnType: bool
    signature: bool remove_all_snapshots(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_snappath_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:4472,1
    - Dst: do_snapshot_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:4475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - c
    - snapname
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4476
      start: 4465
    functionDepth: 3
    functionLinenumber: 4465
    functionLinenumberEnd: 4476
    functionName: do_lxcapi_snapshot_destroy
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - get_snappath_dir
    - do_snapshot_destroy
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_snapshot_destroy(struct lxc_container *c, const char
      *snapname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_snappath_dir
      Src: /src/lxc/src/lxc/lxccontainer.c:4487,1
    - Dst: remove_all_snapshots
      Src: /src/lxc/src/lxc/lxccontainer.c:4490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4480
    functionDepth: 3
    functionLinenumber: 4480
    functionLinenumberEnd: 4491
    functionName: do_lxcapi_snapshot_destroy_all
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - remove_all_snapshots
    - get_snappath_dir
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_snapshot_destroy_all(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_try_cmd
      Src: /src/lxc/src/lxc/lxccontainer.c:4500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4495
    functionDepth: 1
    functionLinenumber: 4495
    functionLinenumberEnd: 4501
    functionName: do_lxcapi_may_control
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_try_cmd
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_may_control(struct lxc_container *c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:4514,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4516,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:4521,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4523,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4531,1
    - Dst: chroot
      Src: /src/lxc/src/lxc/lxccontainer.c:4535,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4537,1
    - Dst: chdir
      Src: /src/lxc/src/lxc/lxccontainer.c:4539,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4541,1
    - Dst: faccessat
      Src: /src/lxc/src/lxc/lxccontainer.c:4544,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/lxccontainer.c:4546,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4548,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4549,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4554,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:4557,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4559,1
    - Dst: dirname
      Src: /src/lxc/src/lxc/lxccontainer.c:4561,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/lxccontainer.c:4562,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4564,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4565,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4566,1
    - Dst: mknod
      Src: /src/lxc/src/lxc/lxccontainer.c:4570,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4571,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4573,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4574,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4577,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 4
    argNames:
    - init_pid
    - path
    - add
    - st
    argTypes:
    - pid_t
    - char*
    - bool
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4578
      start: 4505
    functionDepth: 2
    functionLinenumber: 4505
    functionLinenumberEnd: 4578
    functionName: do_add_remove_node
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - faccessat
    - strnprintf
    - free
    - mknod
    - chroot
    - SYSERROR
    - chdir
    - dirname
    - lxc_mkdir_p
    - strdup
    - _exit
    - unlink
    - wait_for_pid
    - fork
    - ERROR
    linkageType: ''
    returnType: bool
    signature: "bool do_add_remove_node(pid_t init_pid, const char *path, bool add,\n\t\t\t
      \      struct stat *st)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: do_lxcapi_is_running
      Src: /src/lxc/src/lxc/lxccontainer.c:4589,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4590,1
    - Dst: access
      Src: /src/lxc/src/lxc/lxccontainer.c:4598,1
    - Dst: stat
      Src: /src/lxc/src/lxc/lxccontainer.c:4598,1
    - Dst: S_ISCHR
      Src: /src/lxc/src/lxc/lxccontainer.c:4602,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4603,1
    - Dst: major
      Src: /src/lxc/src/lxc/lxccontainer.c:4603,1
    - Dst: minor
      Src: /src/lxc/src/lxc/lxccontainer.c:4603,1
    - Dst: S_ISBLK
      Src: /src/lxc/src/lxc/lxccontainer.c:4604,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4605,1
    - Dst: major
      Src: /src/lxc/src/lxc/lxccontainer.c:4605,1
    - Dst: minor
      Src: /src/lxc/src/lxc/lxccontainer.c:4605,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:4611,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4613,1
    - Dst: do_add_remove_node
      Src: /src/lxc/src/lxc/lxccontainer.c:4617,1
    - Dst: do_lxcapi_set_cgroup_item
      Src: /src/lxc/src/lxc/lxccontainer.c:4622,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4623,1
    - Dst: do_lxcapi_set_cgroup_item
      Src: /src/lxc/src/lxc/lxccontainer.c:4627,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4628,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - c
    - src_path
    - dest_path
    - add
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4634
      start: 4580
    functionDepth: 4
    functionLinenumber: 4580
    functionLinenumberEnd: 4634
    functionName: add_remove_device_node
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - stat
    - S_ISCHR
    - strnprintf
    - major
    - do_add_remove_node
    - do_lxcapi_is_running
    - access
    - minor
    - do_lxcapi_init_pid
    - do_lxcapi_set_cgroup_item
    - S_ISBLK
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool add_remove_device_node(struct lxc_container *c, const char *src_path,
      const char *dest_path, bool add)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: am_host_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:4639,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4640,1
    - Dst: add_remove_device_node
      Src: /src/lxc/src/lxc/lxccontainer.c:4644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - src_path
    - dest_path
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4645
      start: 4636
    functionDepth: 5
    functionLinenumber: 4636
    functionLinenumberEnd: 4645
    functionName: do_lxcapi_add_device_node
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - add_remove_device_node
    - ERROR
    - am_host_unpriv
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_add_device_node(struct lxc_container *c, const char
      *src_path, const char *dest_path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:4651,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4652,1
    - Dst: add_remove_device_node
      Src: /src/lxc/src/lxc/lxccontainer.c:4656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - c
    - src_path
    - dest_path
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4657
      start: 4649
    functionDepth: 5
    functionLinenumber: 4649
    functionLinenumberEnd: 4657
    functionName: do_lxcapi_remove_device_node
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - am_guest_unpriv
    - add_remove_device_node
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_remove_device_node(struct lxc_container *c, const char
      *src_path, const char *dest_path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:4668,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4669,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4674,1
    - Dst: lxc_netdev_isup
      Src: /src/lxc/src/lxc/lxccontainer.c:4678,1
    - Dst: lxc_netdev_down
      Src: /src/lxc/src/lxc/lxccontainer.c:4681,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:4686,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4688,1
    - Dst: lxc_netdev_move_by_name
      Src: /src/lxc/src/lxc/lxccontainer.c:4692,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:4696,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - c
    - ifname
    - dst_ifname
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4701
      start: 4661
    functionDepth: 2
    functionLinenumber: 4661
    functionLinenumberEnd: 4701
    functionName: do_lxcapi_attach_interface
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_netdev_down
    - am_guest_unpriv
    - lxc_netdev_isup
    - do_lxcapi_init_pid
    - INFO
    - lxc_netdev_move_by_name
    - ERROR
    linkageType: ''
    returnType: bool
    signature: "bool do_lxcapi_attach_interface(struct lxc_container *c,\n\t\t\t\t
      \      const char *ifname,\n\t\t\t\t       const char *dst_ifname)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/lxccontainer.c:4717,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4718,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4723,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/lxccontainer.c:4727,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:4728,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4730,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:4737,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4739,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4740,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:4742,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4743,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4744,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/lxccontainer.c:4748,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4750,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4751,1
    - Dst: mount
      Src: /src/lxc/src/lxc/lxccontainer.c:4755,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4756,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4757,1
    - Dst: lxc_netdev_isup
      Src: /src/lxc/src/lxc/lxccontainer.c:4760,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4762,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4763,1
    - Dst: lxc_netdev_down
      Src: /src/lxc/src/lxc/lxccontainer.c:4768,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4770,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4771,1
    - Dst: lxc_attach_remount_sys_proc
      Src: /src/lxc/src/lxc/lxccontainer.c:4776,1
    - Dst: is_wlan
      Src: /src/lxc/src/lxc/lxccontainer.c:4777,1
    - Dst: lxc_netdev_move_wlan
      Src: /src/lxc/src/lxc/lxccontainer.c:4779,1
    - Dst: lxc_netdev_move_by_name
      Src: /src/lxc/src/lxc/lxccontainer.c:4781,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4786,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4788,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4790,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:4793,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:4796,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:4800,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 3
    argNames:
    - c
    - ifname
    - dst_ifname
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4705
    functionDepth: 2
    functionLinenumber: 4705
    functionLinenumberEnd: 4802
    functionName: do_lxcapi_detach_interface
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - lxc_netdev_down
    - lxc_attach_remount_sys_proc
    - switch_to_ns
    - am_guest_unpriv
    - lxc_netdev_move_wlan
    - unshare
    - lxc_netdev_isup
    - do_lxcapi_init_pid
    - _exit
    - is_wlan
    - INFO
    - wait_for_pid
    - lxc_netdev_move_by_name
    - fork
    - ERROR
    - lxc_raw_getpid
    - mount
    linkageType: ''
    returnType: bool
    signature: "bool do_lxcapi_detach_interface(struct lxc_container *c,\n\t\t\t\t
      \      const char *ifname,\n\t\t\t\t       const char *dst_ifname)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:4834,1
    - Dst: memset
      Src: /src/lxc/src/lxc/lxccontainer.c:4838,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/lxccontainer.c:4839,1
    - Dst: do_lxcapi_is_running
      Src: /src/lxc/src/lxc/lxccontainer.c:4844,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4845,1
    - Dst: __criu_pre_dump
      Src: /src/lxc/src/lxc/lxccontainer.c:4849,1
    - Dst: do_lxcapi_is_running
      Src: /src/lxc/src/lxc/lxccontainer.c:4852,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4853,1
    - Dst: __criu_dump
      Src: /src/lxc/src/lxc/lxccontainer.c:4857,1
    - Dst: do_lxcapi_is_running
      Src: /src/lxc/src/lxc/lxccontainer.c:4860,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4861,1
    - Dst: __criu_restore
      Src: /src/lxc/src/lxc/lxccontainer.c:4865,1
    - Dst: __criu_check_feature
      Src: /src/lxc/src/lxc/lxccontainer.c:4869,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4877,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4883,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 4
    argNames:
    - c
    - cmd
    - opts
    - size
    argTypes:
    - struct lxc_container*
    - unsigned int
    - struct migrate_opts*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4886
      start: 4806
    functionDepth: 4
    functionLinenumber: 4806
    functionLinenumberEnd: 4886
    functionName: do_lxcapi_migrate
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - free
    - do_lxcapi_is_running
    - __criu_pre_dump
    - __criu_check_feature
    - __criu_dump
    - ERROR
    - __criu_restore
    - malloc
    linkageType: ''
    returnType: int
    signature: "int do_lxcapi_migrate(struct lxc_container *c, unsigned int cmd,\n\t\t\t
      \    struct migrate_opts *opts, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/lxccontainer.c:4894,1
    - Dst: do_lxcapi_migrate
      Src: /src/lxc/src/lxc/lxccontainer.c:4900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - c
    - directory
    - stop
    - verbose
    argTypes:
    - struct lxc_container*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4901
      start: 4890
    functionDepth: 5
    functionLinenumber: 4890
    functionLinenumberEnd: 4901
    functionName: do_lxcapi_checkpoint
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - memset
    - do_lxcapi_migrate
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_checkpoint(struct lxc_container *c, char *directory,
      bool stop, bool verbose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/lxccontainer.c:4909,1
    - Dst: do_lxcapi_migrate
      Src: /src/lxc/src/lxc/lxccontainer.c:4914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - directory
    - verbose
    argTypes:
    - struct lxc_container*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4905
    functionDepth: 5
    functionLinenumber: 4905
    functionLinenumberEnd: 4915
    functionName: do_lxcapi_restore
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - memset
    - do_lxcapi_migrate
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_restore(struct lxc_container *c, char *directory, bool
      verbose)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:4926,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4928,1
    - Dst: dirname
      Src: /src/lxc/src/lxc/lxccontainer.c:4931,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/lxccontainer.c:4933,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4935,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4936,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:4939,1
    - Dst: stat
      Src: /src/lxc/src/lxc/lxccontainer.c:4941,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/lxccontainer.c:4942,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/lxccontainer.c:4942,1
    - Dst: S_ISREG
      Src: /src/lxc/src/lxc/lxccontainer.c:4945,1
    - Dst: S_ISREG
      Src: /src/lxc/src/lxc/lxccontainer.c:4945,1
    - Dst: remove
      Src: /src/lxc/src/lxc/lxccontainer.c:4948,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4949,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4953,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/lxccontainer.c:4957,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/lxccontainer.c:4958,1
    - Dst: mknod
      Src: /src/lxc/src/lxc/lxccontainer.c:4960,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:4963,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4965,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - dest
    - st_mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4970
      start: 4920
    functionDepth: 2
    functionLinenumber: 4920
    functionLinenumberEnd: 4970
    functionName: create_mount_target
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - stat
    - free
    - mknod
    - dirname
    - SYSERROR
    - lxc_mkdir_p
    - S_ISDIR
    - S_ISREG
    - TRACE
    - remove
    - strdup
    - mkdir
    linkageType: ''
    returnType: int
    signature: int create_mount_target(const char *dest, mode_t st_mode)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4985,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4990,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:4994,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:4996,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:5001,1
    - Dst: stat
      Src: /src/lxc/src/lxc/lxccontainer.c:5005,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5007,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/lxccontainer.c:5012,1
    - Dst: mkdtemp
      Src: /src/lxc/src/lxc/lxccontainer.c:5014,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5016,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/lxc/lxccontainer.c:5020,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5022,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:5028,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5030,1
    - Dst: mount
      Src: /src/lxc/src/lxc/lxccontainer.c:5036,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5038,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5039,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:5041,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:5043,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5045,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5046,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:5050,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:5051,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5052,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5053,1
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/lxccontainer.c:5056,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5057,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:5060,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5061,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5062,1
    - Dst: create_mount_target
      Src: /src/lxc/src/lxc/lxccontainer.c:5065,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5067,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/lxccontainer.c:5069,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5073,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5075,1
    - Dst: mount
      Src: /src/lxc/src/lxc/lxccontainer.c:5079,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5081,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lxccontainer.c:5084,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5086,1
    - Dst: remove
      Src: /src/lxc/src/lxc/lxccontainer.c:5089,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5090,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:5093,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5095,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/lxccontainer.c:5100,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/lxccontainer.c:5103,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/lxccontainer.c:5105,1
    - Dst: close
      Src: /src/lxc/src/lxc/lxccontainer.c:5109,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 111
    argCount: 7
    argNames:
    - c
    - source
    - target
    - filesystemtype
    - mountflags
    - data
    - mnt
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - char*
    - unsigned long
    - void*
    - struct lxc_mount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5112
      start: 4972
    functionDepth: 3
    functionLinenumber: 4972
    functionLinenumberEnd: 5112
    functionName: do_lxcapi_mount
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - close
    - lxc_switch_uid_gid
    - S_ISDIR
    - remove
    - wait_for_pid
    - mount
    - mkdtemp
    - create_mount_target
    - strequal
    - switch_to_ns
    - lxc_make_tmpfile
    - strrchr
    - SYSERROR
    - TRACE
    - unlink
    - rmdir
    - stat
    - strnprintf
    - do_lxcapi_init_pid
    - _exit
    - SYSWARN
    - fork
    - ERROR
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int do_lxcapi_mount(struct lxc_container *c, const char *source,\n\t\t\t
      \  const char *target, const char *filesystemtype,\n\t\t\t   unsigned long mountflags,
      const void *data,\n\t\t\t   struct lxc_mount *mnt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5124,1
    - Dst: fork
      Src: /src/lxc/src/lxc/lxccontainer.c:5129,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5131,1
    - Dst: do_lxcapi_init_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:5136,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5138,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5139,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lxccontainer.c:5143,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:5144,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5145,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5146,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/lxccontainer.c:5150,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5151,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5152,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/lxccontainer.c:5156,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5158,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5159,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxccontainer.c:5162,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/lxccontainer.c:5165,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5167,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - c
    - target
    - flags
    - mnt
    argTypes:
    - struct lxc_container*
    - char*
    - unsigned long
    - struct lxc_mount*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5172
      start: 5117
    functionDepth: 2
    functionLinenumber: 5117
    functionLinenumberEnd: 5172
    functionName: do_lxcapi_umount
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - switch_to_ns
    - umount2
    - SYSERROR
    - do_lxcapi_init_pid
    - _exit
    - wait_for_pid
    - fork
    - ERROR
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int do_lxcapi_umount(struct lxc_container *c, const char *target,\n\t\t\t\tunsigned
      long flags, struct lxc_mount *mnt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/lxc/src/lxc/lxccontainer.c:5187,1
    - Dst: lxc_va_arg_list_to_argv_const
      Src: /src/lxc/src/lxc/lxccontainer.c:5188,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/lxccontainer.c:5189,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5192,1
    - Dst: do_lxcapi_attach_run_wait
      Src: /src/lxc/src/lxc/lxccontainer.c:5198,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - c
    - options
    - program
    - arg
    argTypes:
    - struct lxc_container*
    - lxc_attach_options_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5204
      start: 5176
    functionDepth: 2
    functionLinenumber: 5176
    functionLinenumberEnd: 5204
    functionName: lxcapi_attach_run_waitl
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - do_lxcapi_attach_run_wait
    - free
    - lxc_va_arg_list_to_argv_const
    - va_start
    - va_end
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lxcapi_attach_run_waitl(struct lxc_container *c, lxc_attach_options_t
      *options, const char *program, const char *arg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:5209,1
    - Dst: lxc_seccomp_get_notify_fd
      Src: /src/lxc/src/lxc/lxccontainer.c:5211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5212
      start: 5206
    functionDepth: 1
    functionLinenumber: 5206
    functionLinenumberEnd: 5212
    functionName: do_lxcapi_seccomp_notify_fd
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - lxc_seccomp_get_notify_fd
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_seccomp_notify_fd(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxccontainer.c:5219,1
    - Dst: lxc_cmd_get_seccomp_notify_fd
      Src: /src/lxc/src/lxc/lxccontainer.c:5221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5222
      start: 5216
    functionDepth: 1
    functionLinenumber: 5216
    functionLinenumberEnd: 5222
    functionName: do_lxcapi_seccomp_notify_fd_active
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - lxc_cmd_get_seccomp_notify_fd
    linkageType: ''
    returnType: int
    signature: int do_lxcapi_seccomp_notify_fd_active(struct lxc_container *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - c
    - timeout
    argTypes:
    - struct lxc_container*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5237
      start: 5226
    functionDepth: 0
    functionLinenumber: 5226
    functionLinenumberEnd: 5237
    functionName: do_lxcapi_set_timeout
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool do_lxcapi_set_timeout(struct lxc_container *c, int timeout)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:5250,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5252,1
    - Dst: memset
      Src: /src/lxc/src/lxc/lxccontainer.c:5255,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:5258,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/lxccontainer.c:5260,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:5260,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5262,1
    - Dst: remove_trailing_slashes
      Src: /src/lxc/src/lxc/lxccontainer.c:5266,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:5268,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxccontainer.c:5269,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5271,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/lxccontainer.c:5274,1
    - Dst: lxc_newlock
      Src: /src/lxc/src/lxc/lxccontainer.c:5277,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5279,1
    - Dst: lxc_newlock
      Src: /src/lxc/src/lxc/lxccontainer.c:5283,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5285,1
    - Dst: set_config_filename
      Src: /src/lxc/src/lxc/lxccontainer.c:5289,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5290,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:5294,1
    - Dst: lxcapi_load_config
      Src: /src/lxc/src/lxc/lxccontainer.c:5294,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxccontainer.c:5295,1
    - Dst: ongoing_create
      Src: /src/lxc/src/lxc/lxccontainer.c:5299,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5302,1
    - Dst: container_destroy
      Src: /src/lxc/src/lxc/lxccontainer.c:5303,1
    - Dst: lxcapi_clear_config
      Src: /src/lxc/src/lxc/lxccontainer.c:5304,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5313,1
    - Dst: lxc_container_free
      Src: /src/lxc/src/lxc/lxccontainer.c:5389,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 135
    argCount: 2
    argNames:
    - name
    - configpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5391
      start: 5241
    functionDepth: 5
    functionLinenumber: 5241
    functionLinenumberEnd: 5391
    functionName: lxc_container_new
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 43
    functionsReached:
    - memset
    - ongoing_create
    - lxc_container_free
    - lxcapi_load_config
    - fprintf
    - lxc_newlock
    - strlcpy
    - strlen
    - file_exists
    - SYSERROR
    - set_config_filename
    - lxc_global_config_value
    - container_destroy
    - lxcapi_clear_config
    - strdup
    - remove_trailing_slashes
    - malloc
    linkageType: ''
    returnType: struct lxc_container
    signature: struct lxc_container *lxc_container_new(const char *name, const char
      *configpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/lxccontainer.c:5399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - states
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5393
    functionDepth: 1
    functionLinenumber: 5393
    functionLinenumberEnd: 5402
    functionName: lxc_get_wait_states
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - lxc_state2str
    linkageType: ''
    returnType: int
    signature: int lxc_get_wait_states(const char **states)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:5417,1
    - Dst: opendir
      Src: /src/lxc/src/lxc/lxccontainer.c:5419,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxccontainer.c:5421,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/lxccontainer.c:5431,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:5433,1
    - Dst: config_file_exists
      Src: /src/lxc/src/lxc/lxccontainer.c:5436,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/lxccontainer.c:5440,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:5442,1
    - Dst: do_lxcapi_is_defined
      Src: /src/lxc/src/lxc/lxccontainer.c:5447,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:5448,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:5451,1
    - Dst: add_to_array
      Src: /src/lxc/src/lxc/lxccontainer.c:5457,1
    - Dst: add_to_clist
      Src: /src/lxc/src/lxc/lxccontainer.c:5463,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:5464,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5478,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5479,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:5484,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5485,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 3
    argNames:
    - lxcpath
    - names
    - cret
    argTypes:
    - char*
    - char***
    - struct lxc_container***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5489
      start: 5408
    functionDepth: 6
    functionLinenumber: 5408
    functionLinenumberEnd: 5489
    functionName: list_defined_containers
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - do_lxcapi_is_defined
    - add_to_array
    - strnequal
    - add_to_clist
    - free
    - SYSERROR
    - lxc_container_new
    - INFO
    - lxc_container_put
    - lxc_global_config_value
    - config_file_exists
    linkageType: ''
    returnType: int
    signature: "int list_defined_containers(const char *lxcpath, char ***names,\n\t\t\t
      \   struct lxc_container ***cret)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/lxccontainer.c:5504,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxccontainer.c:5505,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/lxccontainer.c:5513,1
    - Dst: getline
      Src: /src/lxc/src/lxc/lxccontainer.c:5517,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/lxccontainer.c:5520,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:5527,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:5529,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/lxccontainer.c:5540,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:5541,1
    - Dst: lxc_cmd_get_lxcpath
      Src: /src/lxc/src/lxc/lxccontainer.c:5546,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lxccontainer.c:5550,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5551,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5554,1
    - Dst: lxc_cmd_get_name
      Src: /src/lxc/src/lxc/lxccontainer.c:5556,1
    - Dst: array_contains
      Src: /src/lxc/src/lxc/lxccontainer.c:5561,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5563,1
    - Dst: add_to_array
      Src: /src/lxc/src/lxc/lxccontainer.c:5567,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5569,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5577,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/lxccontainer.c:5581,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lxccontainer.c:5583,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5585,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5591,1
    - Dst: add_to_clist
      Src: /src/lxc/src/lxc/lxccontainer.c:5599,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:5600,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:5609,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:5624,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5625,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5631,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5632,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 108
    argCount: 3
    argNames:
    - lxcpath
    - nret
    - cret
    argTypes:
    - char*
    - char***
    - struct lxc_container***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5637
      start: 5491
    functionDepth: 6
    functionLinenumber: 5491
    functionLinenumberEnd: 5637
    functionName: list_active_containers
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - free
    - strnequal
    - add_to_array
    - add_to_clist
    - strlen
    - strstr
    - strchr
    - lxc_container_new
    - array_contains
    - INFO
    - lxc_global_config_value
    - getline
    - lxc_cmd_get_lxcpath
    - lxc_container_put
    - lxc_cmd_get_name
    - fopen
    linkageType: ''
    returnType: int
    signature: "int list_active_containers(const char *lxcpath, char ***nret,\n\t\t\t
      \  struct lxc_container ***cret)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_defined_containers
      Src: /src/lxc/src/lxc/lxccontainer.c:5646,1
    - Dst: list_active_containers
      Src: /src/lxc/src/lxc/lxccontainer.c:5650,1
    - Dst: array_contains
      Src: /src/lxc/src/lxc/lxccontainer.c:5658,1
    - Dst: add_to_array
      Src: /src/lxc/src/lxc/lxccontainer.c:5661,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/lxccontainer.c:5672,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/lxccontainer.c:5674,1
    - Dst: add_to_clist
      Src: /src/lxc/src/lxc/lxccontainer.c:5678,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxccontainer.c:5682,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5689,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5690,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5696,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5697,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxccontainer.c:5704,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5705,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5709,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5710,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5714,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxccontainer.c:5715,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - lxcpath
    - nret
    - cret
    argTypes:
    - char*
    - char***
    - struct lxc_container***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5718
      start: 5639
    functionDepth: 7
    functionLinenumber: 5639
    functionLinenumberEnd: 5718
    functionName: list_all_containers
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - WARN
    - add_to_array
    - add_to_clist
    - free
    - list_active_containers
    - move_ptr
    - list_defined_containers
    - lxc_container_new
    - array_contains
    - lxc_container_put
    linkageType: ''
    returnType: int
    signature: "int list_all_containers(const char *lxcpath, char ***nret,\n\t\t\tstruct
      lxc_container ***cret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_config_exact
      Src: /src/lxc/src/lxc/lxccontainer.c:5722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5723
      start: 5720
    functionDepth: 1
    functionLinenumber: 5720
    functionLinenumberEnd: 5723
    functionName: lxc_config_item_is_supported
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 1
    functionsReached:
    - lxc_get_config_exact
    linkageType: ''
    returnType: bool
    signature: bool lxc_config_item_is_supported(const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/lxccontainer.c:5732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - extension
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5736
      start: 5725
    functionDepth: 1
    functionLinenumber: 5725
    functionLinenumberEnd: 5736
    functionName: lxc_has_api_extension
    functionSourceFile: /src/lxc/src/lxc/lxccontainer.c
    functionUses: 0
    functionsReached:
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool lxc_has_api_extension(const char *extension)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_check_inherited
      Src: /src/lxc/src/lxc/start.h:172,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/start.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - closeall
    argTypes:
    - struct lxc_handler*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: inherit_fds
    functionSourceFile: /src/lxc/src/lxc/start.h
    functionUses: 1
    functionsReached:
    - lxc_check_inherited
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int inherit_fds(struct lxc_handler *handler, bool closeall)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - ns_flag
    argTypes:
    - struct lxc_handler*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: container_uses_namespace
    functionSourceFile: /src/lxc/src/lxc/start.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool container_uses_namespace(const struct lxc_handler *handler,\n\t\t\t\t\t
      \   unsigned int ns_flag)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/lxc/idmap_utils.c:30,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/idmap_utils.c:33,1
    - Dst: open
      Src: /src/lxc/src/lxc/idmap_utils.c:37,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:39,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/idmap_utils.c:42,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/idmap_utils.c:43,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/idmap_utils.c:44,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:45,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/idmap_utils.c:46,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/idmap_utils.c:50,1
    - Dst: open
      Src: /src/lxc/src/lxc/idmap_utils.c:55,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:57,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/idmap_utils.c:59,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:61,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 4
    argNames:
    - idtype
    - pid
    - buf
    - buf_size
    argTypes:
    - enum idtype
    - pid_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 65
    functionName: write_id_mapping
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - STRLITERALLEN
    - log_error_errno
    - geteuid
    - TRACE
    - lxc_write_nointr
    - open
    linkageType: ''
    returnType: int
    signature: "int write_id_mapping(enum idtype idtype, pid_t pid, const char *buf,\n\t\t
      \    size_t buf_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:81,1
    - Dst: on_path
      Src: /src/lxc/src/lxc/idmap_utils.c:83,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:85,1
    - Dst: stat
      Src: /src/lxc/src/lxc/idmap_utils.c:87,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/idmap_utils.c:93,1
    - Dst: lxc_file_cap_is_set
      Src: /src/lxc/src/lxc/idmap_utils.c:98,1
    - Dst: lxc_file_cap_is_set
      Src: /src/lxc/src/lxc/idmap_utils.c:99,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/idmap_utils.c:100,1
    - Dst: lxc_file_cap_is_set
      Src: /src/lxc/src/lxc/idmap_utils.c:104,1
    - Dst: lxc_file_cap_is_set
      Src: /src/lxc/src/lxc/idmap_utils.c:105,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/idmap_utils.c:106,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/idmap_utils.c:115,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 2
    argNames:
    - binary
    - cap
    argTypes:
    - char*
    - cap_value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 118
    functionName: idmaptool_on_path_and_privileged
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 0
    functionsReached:
    - stat
    - lxc_file_cap_is_set
    - ret_errno
    - on_path
    - DEBUG
    - log_debug
    linkageType: ''
    returnType: int
    signature: int idmaptool_on_path_and_privileged(const char *binary, cap_value_t
      cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execl
      Src: /src/lxc/src/lxc/idmap_utils.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: lxc_map_ids_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 0
    functionsReached:
    - execl
    linkageType: ''
    returnType: int
    signature: int lxc_map_ids_exec_wrapper(void *args)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/idmap_utils.c:140,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/idmap_utils.c:140,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/idmap_utils.c:141,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/idmap_utils.c:141,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/idmap_utils.c:145,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/idmap_utils.c:146,1
    - Dst: find_mapped_hostid_entry
      Src: /src/lxc/src/lxc/idmap_utils.c:155,1
    - Dst: idmaptool_on_path_and_privileged
      Src: /src/lxc/src/lxc/idmap_utils.c:163,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/idmap_utils.c:165,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/idmap_utils.c:167,1
    - Dst: idmaptool_on_path_and_privileged
      Src: /src/lxc/src/lxc/idmap_utils.c:169,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/idmap_utils.c:171,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/idmap_utils.c:173,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/idmap_utils.c:176,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/idmap_utils.c:178,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/idmap_utils.c:186,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/idmap_utils.c:193,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/idmap_utils.c:212,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/idmap_utils.c:221,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:230,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/idmap_utils.c:241,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/idmap_utils.c:245,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/idmap_utils.c:246,1
    - Dst: write_id_mapping
      Src: /src/lxc/src/lxc/idmap_utils.c:248,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/idmap_utils.c:250,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/idmap_utils.c:251,1
    - Dst: memset
      Src: /src/lxc/src/lxc/idmap_utils.c:254,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 63
    argCount: 2
    argNames:
    - idmap
    - pid
    argTypes:
    - struct list_head*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 258
    functionName: lxc_map_ids
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 0
    functionsReached:
    - idmaptool_on_path_and_privileged
    - run_command
    - find_mapped_hostid_entry
    - WARN
    - strnprintf
    - memset
    - INTTYPE_TO_STRLEN
    - STRLITERALLEN
    - getegid
    - list_len
    - log_error
    - INFO
    - geteuid
    - sprintf
    - TRACE
    - DEBUG
    - write_id_mapping
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_map_ids(struct list_head *idmap, pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(map, idmap, head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/idmap_utils.c:221,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/idmap_utils.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 233
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 6
    functionsReached:
    - strnprintf
    - log_error_errno
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(map, idmap, head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/idmap_utils.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - id
    - conf
    - idtype
    argTypes:
    - unsigned
    - struct lxc_conf*
    - enum idtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: mapped_hostid
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int mapped_hostid(unsigned id, const struct lxc_conf *conf, enum idtype
      idtype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/idmap_utils.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - conf
    - idtype
    argTypes:
    - struct lxc_conf*
    - enum idtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 292
    functionName: find_unmapped_nsid
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int find_unmapped_nsid(const struct lxc_conf *conf, enum idtype idtype)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/idmap_utils.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - conf
    - id
    - idtype
    argTypes:
    - struct lxc_conf*
    - unsigned
    - enum idtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 321
    functionName: find_mapped_nsid_entry
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct id_map
    signature: "struct id_map *find_mapped_nsid_entry(const struct lxc_conf *conf,\n\t\t\t\t\t\t
      \  unsigned id,\n\t\t\t\t\t\t   enum idtype idtype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_mapped_nsid_entry
      Src: /src/lxc/src/lxc/idmap_utils.c:329,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/idmap_utils.c:333,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/idmap_utils.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - conf
    - id
    - idtype
    argTypes:
    - struct lxc_conf*
    - unsigned
    - enum idtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 339
    functionName: mapped_nsid_add
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 0
    functionsReached:
    - find_mapped_nsid_entry
    - zalloc
    - memcpy
    linkageType: ''
    returnType: struct id_map
    signature: "struct id_map *mapped_nsid_add(const struct lxc_conf *conf, unsigned
      id,\n\t\t\t\t      enum idtype idtype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - idmap
    - id
    - idtype
    argTypes:
    - struct list_head*
    - unsigned
    - enum idtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 358
    functionName: find_mapped_hostid_entry
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct id_map
    signature: "struct id_map *find_mapped_hostid_entry(const struct list_head *idmap,\n\t\t\t\t\t
      \      unsigned id, enum idtype idtype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 355
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(map, idmap, head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/idmap_utils.c:370,1
    - Dst: find_mapped_hostid_entry
      Src: /src/lxc/src/lxc/idmap_utils.c:375,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/idmap_utils.c:377,1
    - Dst: find_unmapped_nsid
      Src: /src/lxc/src/lxc/idmap_utils.c:380,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/idmap_utils.c:382,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/idmap_utils.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - conf
    - id
    - type
    argTypes:
    - struct lxc_conf*
    - uid_t
    - enum idtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 391
    functionName: mapped_hostid_add
    functionSourceFile: /src/lxc/src/lxc/idmap_utils.c
    functionUses: 0
    functionsReached:
    - find_mapped_hostid_entry
    - memcpy
    - move_ptr
    - log_debug
    - zalloc
    - find_unmapped_nsid
    linkageType: ''
    returnType: struct id_map
    signature: "struct id_map *mapped_hostid_add(const struct lxc_conf *conf, uid_t
      id,\n\t\t\t\t\tenum idtype type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:282,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:284,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:286,1
    - Dst: access
      Src: /src/lxc/src/lxc/conf.c:293,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:295,1
    - Dst: storage_init
      Src: /src/lxc/src/lxc/conf.c:298,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 305
    functionName: lxc_storage_prepare
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 4
    functionsReached:
    - log_error
    - access
    - storage_init
    - open_at
    - log_error_errno
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_storage_prepare(struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: storage_put
      Src: /src/lxc/src/lxc/conf.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: lxc_storage_put
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 3
    functionsReached:
    - storage_put
    linkageType: ''
    returnType: void
    signature: void lxc_storage_put(struct lxc_conf *conf)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_prepare
      Src: /src/lxc/src/lxc/conf.c:329,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:331,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:334,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:339,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:341,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:343,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:345,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:346,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:350,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:353,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:355,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:356,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/conf.c:357,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:359,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/conf.c:360,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:362,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:364,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/conf.c:366,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/conf.c:368,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/conf.c:370,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/conf.c:371,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:373,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/conf.c:379,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:380,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:383,1
    - Dst: fstatfs
      Src: /src/lxc/src/lxc/conf.c:385,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/conf.c:387,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:392,1
    - Dst: unlinkat
      Src: /src/lxc/src/lxc/conf.c:396,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/conf.c:397,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:399,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/conf.c:402,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 2
    argNames:
    - conf
    - userns
    argTypes:
    - struct lxc_conf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 404
    functionName: lxc_rootfs_init
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - SYSTRACE
    - strequal
    - syserror_set
    - S_ISDIR
    - fstatfs
    - is_empty_string
    - log_trace
    - open_at
    - TRACE
    - fstat
    - SYSWARN
    - DEBUG
    - unlinkat
    - move_fd
    - log_trace_errno
    - lxc_storage_prepare
    linkageType: ''
    returnType: int
    signature: int lxc_rootfs_init(struct lxc_conf *conf, bool userns)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/conf.c:415,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:418,1
    - Dst: rootfs_is_blockdev
      Src: /src/lxc/src/lxc/conf.c:424,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:425,1
    - Dst: can_use_bind_mounts
      Src: /src/lxc/src/lxc/conf.c:427,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:428,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:430,1
    - Dst: dup_cloexec
      Src: /src/lxc/src/lxc/conf.c:431,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:433,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:436,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/conf.c:438,1
    - Dst: create_detached_idmapped_mount
      Src: /src/lxc/src/lxc/conf.c:440,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:444,1
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/conf.c:446,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:448,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:450,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 452
    functionName: lxc_rootfs_prepare_parent
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - dup_cloexec
    - syserror
    - syserror_set
    - container_uses_namespace
    - strequal
    - create_detached_idmapped_mount
    - is_empty_string
    - rootfs_is_blockdev
    - open_at
    - lxc_storage_get_path
    - TRACE
    - lxc_abstract_unix_send_fds
    - can_use_bind_mounts
    linkageType: ''
    returnType: int
    signature: int lxc_rootfs_prepare_parent(struct lxc_handler *handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:462,1
    - Dst: add_elem_to_mount_list
      Src: /src/lxc/src/lxc/conf.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: add_shmount_to_list
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - add_elem_to_mount_list
    linkageType: ''
    returnType: int
    signature: int add_shmount_to_list(struct lxc_conf *conf)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:524,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:527,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:529,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/conf.c:531,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:534,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:536,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:538,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:547,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:550,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:552,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/conf.c:554,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:557,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:559,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:561,1
    - Dst: lxc_wants_cap
      Src: /src/lxc/src/lxc/conf.c:564,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/conf.c:574,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:576,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:580,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:585,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:587,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:590,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/conf.c:595,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:597,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/conf.c:599,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:606,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:608,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:613,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:615,1
    - Dst: has_cap
      Src: /src/lxc/src/lxc/conf.c:634,1
    - Dst: has_cap
      Src: /src/lxc/src/lxc/conf.c:638,1
    - Dst: struct lxc_handler*::cgroup_ops::mount
      Src: /src/lxc/src/lxc/conf.c:646,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:647,1
    - Dst: add_shmount_to_list
      Src: /src/lxc/src/lxc/conf.c:651,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:653,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 81
    argCount: 2
    argNames:
    - handler
    - flags
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 471
    functionDepth: 4
    functionLinenumber: 471
    functionLinenumberEnd: 657
    functionName: lxc_mount_auto_mounts
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - SYSDEBUG
    - strnprintf
    - syserror
    - safe_mount
    - ret_errno
    - lxc_string_replace
    - syserror_set
    - has_cap
    - struct lxc_handler*::cgroup_ops::mount
    - umount2
    - mkdirat
    - log_error
    - INFO
    - TRACE
    - lxc_wants_cap
    - log_error_errno
    - add_shmount_to_list
    linkageType: ''
    returnType: int
    signature: int lxc_mount_auto_mounts(struct lxc_handler *handler, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sethostname
      Src: /src/lxc/src/lxc/conf.c:666,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:666,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:668,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - utsname
    argTypes:
    - struct utsname*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 674
    functionName: setup_utsname
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - INFO
    - sethostname
    - log_error_errno
    - strlen
    linkageType: ''
    returnType: int
    signature: int setup_utsname(struct utsname *utsname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fstatat
      Src: /src/lxc/src/lxc/conf.c:699,1
    - Dst: symlinkat
      Src: /src/lxc/src/lxc/conf.c:703,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:707,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 718
    functionName: lxc_setup_dev_symlinks
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - symlinkat
    - WARN
    - fstatat
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_setup_dev_symlinks(const struct lxc_rootfs *rootfs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:729,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:731,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/conf.c:733,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/conf.c:739,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/conf.c:742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ttys
    - tty_name
    argTypes:
    - struct lxc_tty_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 745
    functionName: append_ttyname
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - realloc
    - strlen
    - strlcat
    linkageType: ''
    returnType: bool
    signature: bool append_ttyname(struct lxc_tty_info *ttys, char *tty_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:751,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:757,1
    - Dst: SYSINFO
      Src: /src/lxc/src/lxc/conf.c:759,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dfd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 767
    functionName: open_ttymnt_at
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - open_at
    - SYSINFO
    - syserror
    linkageType: ''
    returnType: int
    signature: int open_ttymnt_at(int dfd, const char *path)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:786,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:789,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:791,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:792,1
    - Dst: open_ttymnt_at
      Src: /src/lxc/src/lxc/conf.c:795,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:797,1
    - Dst: unlinkat
      Src: /src/lxc/src/lxc/conf.c:801,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:803,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/conf.c:807,1
    - Dst: fd_bind_mount
      Src: /src/lxc/src/lxc/conf.c:808,1
    - Dst: mount_fd
      Src: /src/lxc/src/lxc/conf.c:819,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:821,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:824,1
    - Dst: symlinkat
      Src: /src/lxc/src/lxc/conf.c:826,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:828,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:833,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:835,1
    - Dst: open_ttymnt_at
      Src: /src/lxc/src/lxc/conf.c:838,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:840,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/conf.c:844,1
    - Dst: fd_bind_mount
      Src: /src/lxc/src/lxc/conf.c:845,1
    - Dst: mount_fd
      Src: /src/lxc/src/lxc/conf.c:856,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:858,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:861,1
    - Dst: append_ttyname
      Src: /src/lxc/src/lxc/conf.c:864,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:865,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:868,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 870
    functionName: lxc_setup_ttys
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - mount_fd
    - ret_errno
    - STRLITERALLEN
    - symlinkat
    - append_ttyname
    - log_error
    - strlen
    - open_ttymnt_at
    - fd_bind_mount
    - INFO
    - DEBUG
    - unlinkat
    - can_use_mount_api
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_setup_ttys(struct lxc_conf *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/conf.c:876,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/conf.c:883,1
    - Dst: lxc_devpts_terminal
      Src: /src/lxc/src/lxc/conf.c:890,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:894,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:896,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:898,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:900,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:905,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:906,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 908
    functionName: lxc_allocate_ttys
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - strnprintf
    - syserror_set
    - move_ptr
    - zalloc
    - INFO
    - DEBUG
    - call_cleaner
    - lxc_devpts_terminal
    linkageType: ''
    returnType: int
    signature: int lxc_allocate_ttys(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:917,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:918,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.c:921,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ttys
    argTypes:
    - struct lxc_tty_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 922
    functionName: lxc_delete_tty
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_delete_tty(struct lxc_tty_info *ttys)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/conf.c:941,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:945,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:950,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:952,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 955
    functionName: __lxc_send_ttys_to_parent
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_send_fds
    - TRACE
    - SYSERROR
    linkageType: ''
    returnType: int
    signature: int __lxc_send_ttys_to_parent(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_allocate_ttys
      Src: /src/lxc/src/lxc/conf.c:962,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:964,1
    - Dst: lxc_setup_ttys
      Src: /src/lxc/src/lxc/conf.c:969,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:971,1
    - Dst: lxc_delete_tty
      Src: /src/lxc/src/lxc/conf.c:979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 982
    functionName: lxc_create_ttys
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_delete_tty
    - lxc_allocate_ttys
    - ERROR
    - lxc_setup_ttys
    linkageType: ''
    returnType: int
    signature: int lxc_create_ttys(struct lxc_handler *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_send_ttys_to_parent
      Src: /src/lxc/src/lxc/conf.c:988,1
    - Dst: lxc_delete_tty
      Src: /src/lxc/src/lxc/conf.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 991
    functionName: lxc_send_ttys_to_parent
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 1
    functionsReached:
    - lxc_delete_tty
    - __lxc_send_ttys_to_parent
    linkageType: ''
    returnType: int
    signature: int lxc_send_ttys_to_parent(struct lxc_handler *handler)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:1006,1
    - Dst: umask
      Src: /src/lxc/src/lxc/conf.c:1008,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:1009,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:1011,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/conf.c:1016,1
    - Dst: fs_prepare
      Src: /src/lxc/src/lxc/conf.c:1017,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1019,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/conf.c:1021,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/conf.c:1023,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1025,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/conf.c:1027,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1029,1
    - Dst: fs_attach
      Src: /src/lxc/src/lxc/conf.c:1031,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/conf.c:1037,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1038,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/conf.c:1041,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/conf.c:1042,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/conf.c:1044,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:1048,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:1055,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:1057,1
    - Dst: umask
      Src: /src/lxc/src/lxc/conf.c:1065,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:1067,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 4
    argNames:
    - name
    - rootfs
    - autodevtmpfssize
    - lxcpath
    argTypes:
    - char*
    - struct lxc_rootfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 996
    functionDepth: 4
    functionLinenumber: 996
    functionLinenumberEnd: 1069
    functionName: mount_autodev
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - safe_mount
    - mkdirat
    - SYSERROR
    - INFO
    - fs_prepare
    - sprintf
    - fs_attach
    - DEBUG
    - must_make_path
    - can_use_mount_api
    - fs_set_property
    - umask
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int mount_autodev(const char *name, const struct lxc_rootfs *rootfs,\n\t\t\t
      int autodevtmpfssize, const char *lxcpath)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: log_info
      Src: /src/lxc/src/lxc/conf.c:1102,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:1104,1
    - Dst: umask
      Src: /src/lxc/src/lxc/conf.c:1106,1
    - Dst: mknodat
      Src: /src/lxc/src/lxc/conf.c:1111,1
    - Dst: makedev
      Src: /src/lxc/src/lxc/conf.c:1111,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1113,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1116,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1131,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/conf.c:1138,1
    - Dst: mknodat
      Src: /src/lxc/src/lxc/conf.c:1149,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1151,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1155,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:1157,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/conf.c:1159,1
    - Dst: fd_bind_mount
      Src: /src/lxc/src/lxc/conf.c:1160,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1173,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:1175,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1177,1
    - Dst: get_rootfs_mnt
      Src: /src/lxc/src/lxc/conf.c:1177,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:1179,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/conf.c:1181,1
    - Dst: get_rootfs_mnt
      Src: /src/lxc/src/lxc/conf.c:1181,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1183,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1185,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1188,1
    - Dst: umask
      Src: /src/lxc/src/lxc/conf.c:1190,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:1192,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1095
    functionDepth: 4
    functionLinenumber: 1095
    functionLinenumberEnd: 1194
    functionName: lxc_fill_autodev
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - safe_mount
    - ret_errno
    - log_info
    - log_error
    - fd_bind_mount
    - INFO
    - open_at
    - can_use_mount_api
    - get_rootfs_mnt
    - DEBUG
    - makedev
    - mknodat
    - SYSTRACE
    - umask
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_fill_autodev(struct lxc_rootfs *rootfs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:1201,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1203,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1205,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:1209,1
    - Dst: access
      Src: /src/lxc/src/lxc/conf.c:1212,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1214,1
    - Dst: struct lxc_rootfs*::storage::ops::mount
      Src: /src/lxc/src/lxc/conf.c:1217,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:1219,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1223,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1227,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1229,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:1231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1232
    functionName: lxc_mount_rootfs
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - struct lxc_rootfs*::storage::ops::mount
    - log_error
    - access
    - log_trace
    - open_at
    - DEBUG
    - log_error_errno
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_mount_rootfs(struct lxc_rootfs *rootfs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1239,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1241,1
    - Dst: same_file_lax
      Src: /src/lxc/src/lxc/conf.c:1245,1
    - Dst: syswarn_ret
      Src: /src/lxc/src/lxc/conf.c:1246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1249
    functionName: lxc_rootfs_overmounted
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - same_file_lax
    - open_at
    - syswarn_ret
    linkageType: ''
    returnType: bool
    signature: bool lxc_rootfs_overmounted(struct lxc_rootfs *rootfs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/lxc/src/lxc/conf.c:1257,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1259,1
    - Dst: chdir
      Src: /src/lxc/src/lxc/conf.c:1261,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:1268,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1270,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:1272,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1274,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/conf.c:1293,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1295,1
    - Dst: getline
      Src: /src/lxc/src/lxc/conf.c:1297,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:1299,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:1304,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:1311,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:1314,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:1317,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:1327,1
    - Dst: chdir
      Src: /src/lxc/src/lxc/conf.c:1330,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1332,1
    - Dst: chroot
      Src: /src/lxc/src/lxc/conf.c:1334,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1336,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1339
    functionName: lxc_chroot
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strequal
    - umount2
    - chroot
    - chdir
    - strchr
    - realpath
    - getline
    - log_error_errno
    - fopen
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_chroot(const struct lxc_rootfs *rootfs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1372,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1374,1
    - Dst: fchdir
      Src: /src/lxc/src/lxc/conf.c:1377,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1379,1
    - Dst: pivot_root
      Src: /src/lxc/src/lxc/conf.c:1382,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1384,1
    - Dst: fchdir
      Src: /src/lxc/src/lxc/conf.c:1390,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1392,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:1401,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1403,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:1405,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1407,1
    - Dst: fchdir
      Src: /src/lxc/src/lxc/conf.c:1409,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1411,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:1434,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1436,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:1438,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1440
    functionName: lxc_pivot_root
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - umount2
    - open_at
    - TRACE
    - pivot_root
    - fchdir
    - log_error_errno
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_pivot_root(const struct lxc_rootfs *rootfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/lxc/src/lxc/conf.c:1445,1
    - Dst: detect_ramfs_rootfs
      Src: /src/lxc/src/lxc/conf.c:1447,1
    - Dst: lxc_chroot
      Src: /src/lxc/src/lxc/conf.c:1448,1
    - Dst: lxc_pivot_root
      Src: /src/lxc/src/lxc/conf.c:1450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1442
    functionDepth: 2
    functionLinenumber: 1442
    functionLinenumberEnd: 1451
    functionName: lxc_setup_rootfs_switch_root
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_pivot_root
    - log_debug
    - lxc_chroot
    - detect_ramfs_rootfs
    linkageType: ''
    returnType: int
    signature: int lxc_setup_rootfs_switch_root(const struct lxc_rootfs *rootfs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_recv_one_fd
      Src: /src/lxc/src/lxc/conf.c:1460,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1465,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:1467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1469
    functionName: lxc_recv_devpts_from_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - TRACE
    - lxc_abstract_unix_recv_one_fd
    linkageType: ''
    returnType: int
    signature: int lxc_recv_devpts_from_child(struct lxc_handler *handler)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/lxc/src/lxc/conf.c:1481,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1483,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1486,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:1488,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:1491,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1493,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/conf.c:1495,1
    - Dst: fs_prepare
      Src: /src/lxc/src/lxc/conf.c:1496,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1498,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/conf.c:1500,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/conf.c:1502,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/conf.c:1504,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/conf.c:1506,1
    - Dst: fs_set_flag
      Src: /src/lxc/src/lxc/conf.c:1508,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1510,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/conf.c:1512,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1514,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/conf.c:1516,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1518,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/conf.c:1520,1
    - Dst: fdstr
      Src: /src/lxc/src/lxc/conf.c:1520,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1522,1
    - Dst: fsconfig
      Src: /src/lxc/src/lxc/conf.c:1524,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1526,1
    - Dst: fsmount
      Src: /src/lxc/src/lxc/conf.c:1528,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1530,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:1531,1
    - Dst: move_mount
      Src: /src/lxc/src/lxc/conf.c:1533,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1535,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1537,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1549,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:1555,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1557,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:1563,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:1569,1
    - Dst: mount_at
      Src: /src/lxc/src/lxc/conf.c:1576,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1583,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1585,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:1588,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1591,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/conf.c:1594,1
    - Dst: unlinkat
      Src: /src/lxc/src/lxc/conf.c:1611,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1614,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1616,1
    - Dst: mknodat
      Src: /src/lxc/src/lxc/conf.c:1620,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1622,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1623,1
    - Dst: mount_at
      Src: /src/lxc/src/lxc/conf.c:1626,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/conf.c:1630,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:1633,1
    - Dst: unlinkat
      Src: /src/lxc/src/lxc/conf.c:1636,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1638,1
    - Dst: symlinkat
      Src: /src/lxc/src/lxc/conf.c:1641,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1643,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1645,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1647
    functionName: lxc_setup_devpts_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - fs_set_flag
    - open_at
    - fs_prepare
    - move_mount
    - can_use_mount_api
    - fs_set_property
    - STRLITERALLEN
    - mount_at
    - move_fd
    - unlinkat
    - symlinkat
    - umount2
    - mkdirat
    - TRACE
    - DEBUG
    - log_debug
    - fdstr
    - strnprintf
    - fsconfig
    - fsmount
    - mknodat
    - SYSTRACE
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_setup_devpts_child(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1664,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1667,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:1669,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:1670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1672
    functionName: lxc_finish_devpts_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - strnprintf
    - close_prot_errno_disarm
    - umount2
    linkageType: ''
    returnType: int
    signature: int lxc_finish_devpts_child(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/lxc/src/lxc/conf.c:1679,1
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/conf.c:1681,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:1683,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:1685,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:1687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1674
    functionDepth: 1
    functionLinenumber: 1674
    functionLinenumberEnd: 1690
    functionName: lxc_send_devpts_to_parent
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - SYSERROR
    - TRACE
    - lxc_abstract_unix_send_fds
    - log_debug
    linkageType: ''
    returnType: int
    signature: int lxc_send_devpts_to_parent(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/lxc/src/lxc/conf.c:1697,1
    - Dst: lxc_personality
      Src: /src/lxc/src/lxc/conf.c:1699,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1701,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:1703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - persona
    argTypes:
    - personality_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1705
    functionName: setup_personality
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_personality
    - log_debug
    - INFO
    - syserror
    linkageType: ''
    returnType: int
    signature: int setup_personality(personality_t persona)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:1712,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:1713,1
    - Dst: open_at_same
      Src: /src/lxc/src/lxc/conf.c:1729,1
    - Dst: fdstr
      Src: /src/lxc/src/lxc/conf.c:1729,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1732,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/conf.c:1738,1
    - Dst: fd_bind_mount
      Src: /src/lxc/src/lxc/conf.c:1739,1
    - Dst: mount_fd
      Src: /src/lxc/src/lxc/conf.c:1741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - fd_devpts
    - rootfs
    - console
    - fd_to
    argTypes:
    - int
    - struct lxc_rootfs*
    - struct lxc_terminal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1742
    functionName: bind_mount_console
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - ret_errno
    - open_at_same
    - is_empty_string
    - fd_bind_mount
    - can_use_mount_api
    - fdstr
    - mount_fd
    linkageType: ''
    returnType: int
    signature: "int bind_mount_console(int fd_devpts, struct lxc_rootfs *rootfs,\n\t\t\t
      \     struct lxc_terminal *console, int fd_to)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: exists_file_at
      Src: /src/lxc/src/lxc/conf.c:1754,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1757,1
    - Dst: lxc_unstack_mountpoint
      Src: /src/lxc/src/lxc/conf.c:1761,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1763,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1765,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1772,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1778,1
    - Dst: fchmod
      Src: /src/lxc/src/lxc/conf.c:1780,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1782,1
    - Dst: bind_mount_console
      Src: /src/lxc/src/lxc/conf.c:1784,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1786,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:1789,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - fd_devpts
    - rootfs
    - console
    argTypes:
    - int
    - struct lxc_rootfs*
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1744
    functionDepth: 3
    functionLinenumber: 1744
    functionLinenumberEnd: 1791
    functionName: lxc_setup_dev_console
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - lxc_unstack_mountpoint
    - strnprintf
    - bind_mount_console
    - exists_file_at
    - open_at
    - TRACE
    - DEBUG
    - fchmod
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_setup_dev_console(int fd_devpts, struct lxc_rootfs *rootfs,\n\t\t\t\t
      struct lxc_terminal *console)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:1802,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1804,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1806,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1812,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1814,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1819,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1825,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/conf.c:1827,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1830,1
    - Dst: lxc_unstack_mountpoint
      Src: /src/lxc/src/lxc/conf.c:1834,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1836,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:1838,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1842,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1848,1
    - Dst: fchmod
      Src: /src/lxc/src/lxc/conf.c:1850,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1852,1
    - Dst: bind_mount_console
      Src: /src/lxc/src/lxc/conf.c:1855,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1857,1
    - Dst: open_at_same
      Src: /src/lxc/src/lxc/conf.c:1860,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1867,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/conf.c:1870,1
    - Dst: fd_bind_mount
      Src: /src/lxc/src/lxc/conf.c:1871,1
    - Dst: mount_fd
      Src: /src/lxc/src/lxc/conf.c:1884,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1886,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:1889,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - fd_devpts
    - rootfs
    - console
    - ttydir
    argTypes:
    - int
    - struct lxc_rootfs*
    - struct lxc_terminal*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1793
    functionDepth: 3
    functionLinenumber: 1793
    functionLinenumberEnd: 1891
    functionName: lxc_setup_ttydir_console
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - strnprintf
    - lxc_unstack_mountpoint
    - mount_fd
    - open_at_same
    - mkdirat
    - file_exists
    - bind_mount_console
    - fd_bind_mount
    - open_at
    - TRACE
    - DEBUG
    - fchmod
    - can_use_mount_api
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_setup_ttydir_console(int fd_devpts, struct lxc_rootfs *rootfs,\n\t\t\t\t
      \   struct lxc_terminal *console,\n\t\t\t\t    char *ttydir)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: wants_console
      Src: /src/lxc/src/lxc/conf.c:1901,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:1902,1
    - Dst: lxc_devpts_terminal
      Src: /src/lxc/src/lxc/conf.c:1910,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1913,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:1915,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1918,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:1926,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1932,1
    - Dst: lxc_setup_ttydir_console
      Src: /src/lxc/src/lxc/conf.c:1938,1
    - Dst: lxc_setup_dev_console
      Src: /src/lxc/src/lxc/conf.c:1940,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1942,1
    - Dst: set_stdfds
      Src: /src/lxc/src/lxc/conf.c:1953,1
    - Dst: lxc_terminal_set_stdfds
      Src: /src/lxc/src/lxc/conf.c:1955,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:1957,1
    - Dst: lxc_terminal_delete
      Src: /src/lxc/src/lxc/conf.c:1964,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - handler
    - rootfs
    - console
    - ttydir
    argTypes:
    - struct lxc_handler*
    - struct lxc_rootfs*
    - struct lxc_terminal*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1893
    functionDepth: 4
    functionLinenumber: 1893
    functionLinenumberEnd: 1968
    functionName: lxc_setup_console
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - strnprintf
    - lxc_setup_ttydir_console
    - set_stdfds
    - lxc_terminal_set_stdfds
    - log_trace
    - open_at
    - lxc_terminal_delete
    - wants_console
    - lxc_devpts_terminal
    - lxc_setup_dev_console
    linkageType: ''
    returnType: int
    signature: "int lxc_setup_console(const struct lxc_handler *handler,\n\t\t\t     struct
      lxc_rootfs *rootfs,\n\t\t\t     struct lxc_terminal *console, char *ttydir)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:1975,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:1980,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:1982,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:1984,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:1994,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/conf.c:1995,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:1997,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/conf.c:2000,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2002,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - opt
    - flags
    - data
    - size
    argTypes:
    - char*
    - unsigned long*
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1970
    functionDepth: 1
    functionLinenumber: 1970
    functionLinenumberEnd: 2005
    functionName: parse_mntopt
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strlcat
    - strnequal
    - strlen
    - strchr
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int parse_mntopt(char *opt, unsigned long *flags, char **data, size_t
      size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:2014,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/conf.c:2019,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:2021,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2023,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/conf.c:2024,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:2026,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/conf.c:2028,1
    - Dst: parse_mntopt
      Src: /src/lxc/src/lxc/conf.c:2029,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:2030,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:2033,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - mntopts
    - mntflags
    - mntdata
    argTypes:
    - char*
    - unsigned long*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2007
    functionDepth: 2
    functionLinenumber: 2007
    functionLinenumberEnd: 2036
    functionName: parse_mntopts_legacy
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - move_ptr
    - strlen
    - parse_mntopt
    - zalloc
    - lxc_iterate_parts
    - strdup
    linkageType: ''
    returnType: int
    signature: int parse_mntopts_legacy(const char *mntopts, unsigned long *mntflags,
      char **mntdata)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:2050,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2050,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2054,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2062,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/conf.c:2069,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2074,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2078,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:2085,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2085,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2088,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2089,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2090,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2091,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - opts
    - opt
    - size
    argTypes:
    - struct lxc_mount_options*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2101
    functionName: parse_vfs_attr
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strequal
    - log_info
    - strnequal
    - strlen
    - TRACE
    linkageType: ''
    returnType: int
    signature: int parse_vfs_attr(struct lxc_mount_options *opts, char *opt, size_t
      size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:2111,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/conf.c:2116,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:2118,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2120,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/conf.c:2121,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:2123,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/conf.c:2125,1
    - Dst: parse_vfs_attr
      Src: /src/lxc/src/lxc/conf.c:2127,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2129,1
    - Dst: stpcpy
      Src: /src/lxc/src/lxc/conf.c:2137,1
    - Dst: stpcpy
      Src: /src/lxc/src/lxc/conf.c:2139,1
    - Dst: stpcpy
      Src: /src/lxc/src/lxc/conf.c:2140,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:2145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - opts
    - mntopts
    argTypes:
    - struct lxc_mount_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2103
    functionDepth: 2
    functionLinenumber: 2103
    functionLinenumberEnd: 2148
    functionName: parse_mount_attrs
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - ret_errno
    - stpcpy
    - move_ptr
    - strlen
    - zalloc
    - lxc_iterate_parts
    - strdup
    - parse_vfs_attr
    linkageType: ''
    returnType: int
    signature: int parse_mount_attrs(struct lxc_mount_options *opts, const char *mntopts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2155
    functionName: null_endofword
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_endofword(char *word)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - src
    - nfields
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2174
    functionName: get_field
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_field(char *src, int nfields)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:2189,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2191,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/conf.c:2195,1
    - Dst: log_info_errno
      Src: /src/lxc/src/lxc/conf.c:2199,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2202,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:2208,1
    - Dst: statvfs
      Src: /src/lxc/src/lxc/conf.c:2212,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:2227,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:2236,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:2244,1
    - Dst: log_info_errno
      Src: /src/lxc/src/lxc/conf.c:2247,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2251,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:2261,1
    - Dst: log_info_errno
      Src: /src/lxc/src/lxc/conf.c:2264,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2266,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:2268,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:2271,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 10
    argNames:
    - fsname
    - target
    - fstype
    - mountflags
    - pflags
    - data
    - optional
    - dev
    - relative
    - rootfs
    argTypes:
    - char*
    - char*
    - char*
    - unsigned long
    - unsigned long
    - char*
    - bool
    - bool
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2176
    functionDepth: 4
    functionLinenumber: 2176
    functionLinenumberEnd: 2275
    functionName: mount_entry
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - log_info_errno
    - statvfs
    - log_error_errno
    - DEBUG
    - safe_mount
    - mount
    linkageType: ''
    returnType: int
    signature: "int mount_entry(const char *fsname, const char *target,\n\t\t       const
      char *fstype, unsigned long mountflags,\n\t\t       unsigned long pflags, const
      char *data, bool optional,\n\t\t       bool dev, bool relative, const char *rootfs)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/lxc/src/lxc/conf.c:2294,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:2313,1
    - Dst: strchrnul
      Src: /src/lxc/src/lxc/conf.c:2314,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2318,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/conf.c:2320,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:2322,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2323,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2325,1
    - Dst: open
      Src: /src/lxc/src/lxc/conf.c:2326,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2328,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2331,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2334,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:2337,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/conf.c:2341,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2341,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - opts
    - mnt_opts
    argTypes:
    - struct lxc_mount_options*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2286
    functionDepth: 1
    functionLinenumber: 2286
    functionLinenumberEnd: 2345
    functionName: parse_lxc_mount_attrs
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - syserror_set
    - strequal
    - STRLITERALLEN
    - strlcpy
    - strlen
    - strstr
    - strchr
    - strchrnul
    - is_empty_string
    - TRACE
    - memmove
    - open
    linkageType: ''
    returnType: int
    signature: int parse_lxc_mount_attrs(struct lxc_mount_options *opts, char *mnt_opts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:2356,1
    - Dst: ovl_mkdir
      Src: /src/lxc/src/lxc/conf.c:2357,1
    - Dst: hasmntopt
      Src: /src/lxc/src/lxc/conf.c:2362,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/conf.c:2363,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2365,1
    - Dst: hasmntopt
      Src: /src/lxc/src/lxc/conf.c:2368,1
    - Dst: access
      Src: /src/lxc/src/lxc/conf.c:2371,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/conf.c:2375,1
    - Dst: dirname
      Src: /src/lxc/src/lxc/conf.c:2379,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/conf.c:2381,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2383,1
    - Dst: mknod
      Src: /src/lxc/src/lxc/conf.c:2385,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 5
    argNames:
    - mntent
    - path
    - rootfs
    - lxc_name
    - lxc_path
    argTypes:
    - struct mntent*
    - char*
    - struct lxc_rootfs*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2347
    functionDepth: 2
    functionLinenumber: 2347
    functionLinenumberEnd: 2390
    functionName: mount_entry_create_dir_file
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - hasmntopt
    - strnequal
    - dirname
    - lxc_mkdir_p
    - access
    - mknod
    - ovl_mkdir
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int mount_entry_create_dir_file(const struct mntent *mntent,\n\t\t\t\t
      \      const char *path,\n\t\t\t\t       const struct lxc_rootfs *rootfs,\n\t\t\t\t
      \      const char *lxc_name, const char *lxc_path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hasmntopt
      Src: /src/lxc/src/lxc/conf.c:2406,1
    - Dst: hasmntopt
      Src: /src/lxc/src/lxc/conf.c:2407,1
    - Dst: hasmntopt
      Src: /src/lxc/src/lxc/conf.c:2408,1
    - Dst: mount_entry_create_dir_file
      Src: /src/lxc/src/lxc/conf.c:2413,1
    - Dst: parse_lxc_mount_attrs
      Src: /src/lxc/src/lxc/conf.c:2422,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:2433,1
    - Dst: systrace_ret
      Src: /src/lxc/src/lxc/conf.c:2434,1
    - Dst: parse_mount_attrs
      Src: /src/lxc/src/lxc/conf.c:2436,1
    - Dst: mount_entry
      Src: /src/lxc/src/lxc/conf.c:2440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - mntent
    - path
    - rootfs
    - lxc_name
    - lxc_path
    argTypes:
    - struct mntent*
    - char*
    - struct lxc_rootfs*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2394
    functionDepth: 5
    functionLinenumber: 2394
    functionLinenumberEnd: 2452
    functionName: mount_entry_on_generic
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - parse_mount_attrs
    - hasmntopt
    - is_empty_string
    - parse_lxc_mount_attrs
    - mount_entry
    - mount_entry_create_dir_file
    - systrace_ret
    linkageType: ''
    returnType: int
    signature: "int mount_entry_on_generic(struct mntent *mntent,\n\t\t\t\t\t const
      char *path,\n\t\t\t\t\t const struct lxc_rootfs *rootfs,\n\t\t\t\t\t const char
      *lxc_name,\n\t\t\t\t\t const char *lxc_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:2463,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:2465,1
    - Dst: mount_entry_on_generic
      Src: /src/lxc/src/lxc/conf.c:2469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rootfs
    - mntent
    argTypes:
    - struct lxc_rootfs*
    - struct mntent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2454
    functionDepth: 6
    functionLinenumber: 2454
    functionLinenumberEnd: 2470
    functionName: mount_entry_on_systemfs
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - mount_entry_on_generic
    linkageType: ''
    returnType: int
    signature: "int mount_entry_on_systemfs(struct lxc_rootfs *rootfs,\n\t\t\t\t\t
      \ struct mntent *mntent)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/conf.c:2482,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:2489,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/conf.c:2493,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2495,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/conf.c:2500,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/conf.c:2502,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2503,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:2506,1
    - Dst: mount_entry_on_generic
      Src: /src/lxc/src/lxc/conf.c:2510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - mntent
    - rootfs
    - lxc_name
    - lxc_path
    argTypes:
    - struct mntent*
    - struct lxc_rootfs*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2472
    functionDepth: 6
    functionLinenumber: 2472
    functionLinenumberEnd: 2511
    functionName: mount_entry_on_absolute_rootfs
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - log_warn
    - strlen
    - strstr
    - mount_entry_on_generic
    - lxc_global_config_value
    linkageType: ''
    returnType: int
    signature: "int mount_entry_on_absolute_rootfs(struct mntent *mntent,\n\t\t\t\t\t
      \ struct lxc_rootfs *rootfs,\n\t\t\t\t\t  const char *lxc_name,\n\t\t\t\t\t
      \ const char *lxc_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:2521,1
    - Dst: mount_entry_on_generic
      Src: /src/lxc/src/lxc/conf.c:2525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mntent
    - rootfs
    - lxc_name
    - lxc_path
    argTypes:
    - struct mntent*
    - struct lxc_rootfs*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2513
    functionDepth: 6
    functionLinenumber: 2513
    functionLinenumberEnd: 2526
    functionName: mount_entry_on_relative_rootfs
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - mount_entry_on_generic
    linkageType: ''
    returnType: int
    signature: "int mount_entry_on_relative_rootfs(struct mntent *mntent,\n\t\t\t\t\t
      \ struct lxc_rootfs *rootfs,\n\t\t\t\t\t  const char *lxc_name,\n\t\t\t\t\t
      \ const char *lxc_path)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getmntent_r
      Src: /src/lxc/src/lxc/conf.c:2534,1
    - Dst: mount_entry_on_systemfs
      Src: /src/lxc/src/lxc/conf.c:2538,1
    - Dst: mount_entry_on_relative_rootfs
      Src: /src/lxc/src/lxc/conf.c:2540,1
    - Dst: mount_entry_on_absolute_rootfs
      Src: /src/lxc/src/lxc/conf.c:2543,1
    - Dst: feof
      Src: /src/lxc/src/lxc/conf.c:2549,1
    - Dst: ferror
      Src: /src/lxc/src/lxc/conf.c:2549,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:2550,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - rootfs
    - file
    - lxc_name
    - lxc_path
    argTypes:
    - struct lxc_rootfs*
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2528
    functionDepth: 7
    functionLinenumber: 2528
    functionLinenumberEnd: 2553
    functionName: mount_file_entries
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - mount_entry_on_relative_rootfs
    - log_error
    - getmntent_r
    - feof
    - mount_entry_on_absolute_rootfs
    - mount_entry_on_systemfs
    - ferror
    linkageType: ''
    returnType: int
    signature: "int mount_file_entries(struct lxc_rootfs *rootfs, FILE *file,\n\t\t\t
      \     const char *lxc_name, const char *lxc_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: endmntent
      Src: /src/lxc/src/lxc/conf.c:2558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2555
    functionDepth: 0
    functionLinenumber: 2555
    functionLinenumberEnd: 2559
    functionName: __auto_endmntent__
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - endmntent
    linkageType: ''
    returnType: void
    signature: void __auto_endmntent__(FILE **f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setmntent
      Src: /src/lxc/src/lxc/conf.c:2572,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2574,1
    - Dst: mount_file_entries
      Src: /src/lxc/src/lxc/conf.c:2576,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:2578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - rootfs
    - fstab
    - lxc_name
    - lxc_path
    argTypes:
    - struct lxc_rootfs*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2563
    functionDepth: 8
    functionLinenumber: 2563
    functionLinenumberEnd: 2581
    functionName: setup_mount_fstab
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - setmntent
    - mount_file_entries
    - log_error_errno
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int setup_mount_fstab(struct lxc_rootfs *rootfs, const char *fstab,\n\t\t\t
      \    const char *lxc_name, const char *lxc_path)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/conf.c:2605,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2608,1
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/conf.c:2609,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/lxc/conf.c:2618,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:2620,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2622,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2628,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:2630,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:2634,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:2640,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/conf.c:2641,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/conf.c:2642,1
    - Dst: lseek
      Src: /src/lxc/src/lxc/conf.c:2646,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/conf.c:2650,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/conf.c:2652,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - mount_entries
    - include_nesting_helpers
    argTypes:
    - struct list_head*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2597
    functionDepth: 1
    functionLinenumber: 2597
    functionLinenumberEnd: 2654
    functionName: make_anonymous_mount_file
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - memfd_create
    - lxc_make_tmpfile
    - strlen
    - lxc_write_nointr
    - TRACE
    - move_fd
    - STRARRAYLEN
    - lseek
    - log_error_errno
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: "FILE *make_anonymous_mount_file(const struct list_head *mount_entries,\n\t\t\t\tbool
      include_nesting_helpers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:2628,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:2630,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:2634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2625
    functionDepth: 1
    functionLinenumber: 2625
    functionLinenumberEnd: 2637
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 9
    functionsReached:
    - strlen
    - lxc_write_nointr
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(entry, mount_entries, head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_anonymous_mount_file
      Src: /src/lxc/src/lxc/conf.c:2662,1
    - Dst: mount_file_entries
      Src: /src/lxc/src/lxc/conf.c:2666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - conf
    - rootfs
    - lxc_name
    - lxc_path
    argTypes:
    - struct lxc_conf*
    - struct lxc_rootfs*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2656
    functionDepth: 8
    functionLinenumber: 2656
    functionLinenumberEnd: 2667
    functionName: setup_mount_entries
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - make_anonymous_mount_file
    - mount_file_entries
    linkageType: ''
    returnType: int
    signature: "int setup_mount_entries(const struct lxc_conf *conf,\n\t\t\t       struct
      lxc_rootfs *rootfs,\n\t\t\t       const char *lxc_name, const char *lxc_path)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: getmntent_r
      Src: /src/lxc/src/lxc/conf.c:2678,1
    - Dst: parse_lxc_mount_attrs
      Src: /src/lxc/src/lxc/conf.c:2688,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2690,1
    - Dst: parse_mount_attrs
      Src: /src/lxc/src/lxc/conf.c:2692,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2694,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:2698,1
    - Dst: can_use_bind_mounts
      Src: /src/lxc/src/lxc/conf.c:2701,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2702,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2705,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:2708,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2709,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2710,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:2713,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2714,1
    - Dst: deabs
      Src: /src/lxc/src/lxc/conf.c:2721,1
    - Dst: open_tree
      Src: /src/lxc/src/lxc/conf.c:2726,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2730,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2734,1
    - Dst: openat
      Src: /src/lxc/src/lxc/conf.c:2735,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:2737,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2741,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2745,1
    - Dst: __lxc_abstract_unix_send_two_fds
      Src: /src/lxc/src/lxc/conf.c:2750,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2755,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2759,1
    - Dst: lxc_abstract_unix_rcv_credential
      Src: /src/lxc/src/lxc/conf.c:2765,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2770,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2774,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2780,1
    - Dst: mount_setattr
      Src: /src/lxc/src/lxc/conf.c:2787,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2795,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2799,1
    - Dst: mount_setattr
      Src: /src/lxc/src/lxc/conf.c:2810,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2818,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2822,1
    - Dst: deabs
      Src: /src/lxc/src/lxc/conf.c:2836,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:2841,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2844,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2848,1
    - Dst: move_detached_mount
      Src: /src/lxc/src/lxc/conf.c:2854,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2857,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2861,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2866,1
    - Dst: feof
      Src: /src/lxc/src/lxc/conf.c:2871,1
    - Dst: ferror
      Src: /src/lxc/src/lxc/conf.c:2871,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/conf.c:2872,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 101
    argCount: 2
    argNames:
    - handler
    - f
    argTypes:
    - struct lxc_handler*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2669
    functionDepth: 3
    functionLinenumber: 2669
    functionLinenumberEnd: 2875
    functionName: __lxc_idmapped_mounts_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - syserror_set
    - move_detached_mount
    - parse_mount_attrs
    - open_tree
    - openat
    - open_at
    - ferror
    - __lxc_abstract_unix_send_two_fds
    - getmntent_r
    - parse_lxc_mount_attrs
    - can_use_bind_mounts
    - strequal
    - is_empty_string
    - feof
    - TRACE
    - mount_setattr
    - lxc_abstract_unix_rcv_credential
    - deabs
    linkageType: ''
    returnType: int
    signature: int __lxc_idmapped_mounts_child(struct lxc_handler *handler, FILE *f)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make_anonymous_mount_file
      Src: /src/lxc/src/lxc/conf.c:2885,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:2888,1
    - Dst: __lxc_idmapped_mounts_child
      Src: /src/lxc/src/lxc/conf.c:2892,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:2894,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2898,1
    - Dst: setmntent
      Src: /src/lxc/src/lxc/conf.c:2903,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:2905,1
    - Dst: __lxc_idmapped_mounts_child
      Src: /src/lxc/src/lxc/conf.c:2909,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:2911,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:2915,1
    - Dst: lxc_abstract_unix_send_credential
      Src: /src/lxc/src/lxc/conf.c:2921,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:2923,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2877
    functionDepth: 4
    functionLinenumber: 2877
    functionLinenumberEnd: 2926
    functionName: lxc_idmapped_mounts_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 1
    functionsReached:
    - make_anonymous_mount_file
    - lxc_abstract_unix_send_credential
    - syserror
    - __lxc_idmapped_mounts_child
    - setmntent
    - SYSERROR
    - TRACE
    linkageType: ''
    returnType: int
    signature: int lxc_idmapped_mounts_child(struct lxc_handler *handler)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2935,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:2939,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:2943,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/conf.c:2955,1
    - Dst: lxc_caps_last_cap
      Src: /src/lxc/src/lxc/conf.c:2959,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - cap_name
    - cap
    argTypes:
    - char*
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2928
    functionDepth: 1
    functionLinenumber: 2928
    functionLinenumberEnd: 2968
    functionName: parse_cap
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - WARN
    - lxc_caps_last_cap
    - strequal
    - lxc_safe_uint
    linkageType: ''
    returnType: int
    signature: int parse_cap(const char *cap_name, __u32 *cap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:2975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - cap
    - conf
    argTypes:
    - __u32
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2988
      start: 2970
    functionDepth: 0
    functionLinenumber: 2970
    functionLinenumberEnd: 2988
    functionName: has_cap
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: bool has_cap(__u32 cap, struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:2994,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/conf.c:2997,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:2997,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:2997,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:2998,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:2998,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3000,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:3002,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:3005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3007
      start: 2990
    functionDepth: 1
    functionLinenumber: 2990
    functionLinenumberEnd: 3007
    functionName: capabilities_deny
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - prctl_arg
    - prctl
    - DEBUG
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int capabilities_deny(struct lxc_conf *conf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_caps_last_cap
      Src: /src/lxc/src/lxc/conf.c:3016,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:3018,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3020,1
    - Dst: BITS_TO_LONGS
      Src: /src/lxc/src/lxc/conf.c:3022,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/conf.c:3023,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:3025,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:3027,1
    - Dst: set_bit
      Src: /src/lxc/src/lxc/conf.c:3031,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:3032,1
    - Dst: is_set
      Src: /src/lxc/src/lxc/conf.c:3036,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/conf.c:3039,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3039,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3039,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3040,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3040,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3042,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3044,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:3047,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3009
    functionDepth: 1
    functionLinenumber: 3009
    functionLinenumberEnd: 3049
    functionName: capabilities_allow
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - ret_errno
    - prctl_arg
    - set_bit
    - prctl
    - TRACE
    - lxc_caps_last_cap
    - DEBUG
    - list_for_each_entry
    - BITS_TO_LONGS
    - zalloc
    - is_set
    linkageType: ''
    returnType: int
    signature: int capabilities_allow(struct lxc_conf *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:3058,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/conf.c:3065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - res
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3051
    functionDepth: 1
    functionLinenumber: 3051
    functionLinenumberEnd: 3070
    functionName: parse_resource
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_safe_int
    - strequal
    linkageType: ''
    returnType: int
    signature: int parse_resource(const char *res)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/conf.c:3077,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:3080,1
    - Dst: parse_resource
      Src: /src/lxc/src/lxc/conf.c:3081,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3083,1
    - Dst: prlimit
      Src: /src/lxc/src/lxc/conf.c:3086,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3087,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3089,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3091,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - conf
    - pid
    argTypes:
    - struct lxc_conf*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3072
    functionDepth: 2
    functionLinenumber: 3072
    functionLinenumberEnd: 3097
    functionName: setup_resource_limits
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - log_error
    - parse_resource
    - TRACE
    - list_for_each_entry
    - prlimit
    - list_empty
    linkageType: ''
    returnType: int
    signature: int setup_resource_limits(struct lxc_conf *conf, pid_t pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/conf.c:3106,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:3109,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/conf.c:3110,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3112,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:3114,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3116,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/conf.c:3118,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:3119,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3121,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3124,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3129
      start: 3099
    functionDepth: 1
    functionLinenumber: 3099
    functionLinenumberEnd: 3129
    functionName: setup_sysctl_parameters
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - lxc_string_replace
    - list_for_each_entry_safe
    - log_error_errno
    - log_error
    - strlen
    - TRACE
    - list_empty
    - lxc_write_to_file
    linkageType: ''
    returnType: int
    signature: int setup_sysctl_parameters(struct lxc_conf *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/conf.c:3138,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:3141,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/conf.c:3142,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3144,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:3146,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3148,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/conf.c:3150,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/conf.c:3151,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3153,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3156,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - conf
    - pid
    argTypes:
    - struct lxc_conf*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3161
    functionName: setup_proc_filesystem
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - lxc_string_replace
    - log_error_errno
    - log_error
    - strlen
    - TRACE
    - list_for_each_entry
    - list_empty
    - lxc_write_to_file
    linkageType: ''
    returnType: int
    signature: int setup_proc_filesystem(struct lxc_conf *conf, pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zalloc::zalloc
      Src: /src/lxc/src/lxc/conf.c:3170,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3177,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3178,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3179,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3180,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3181,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3182,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3183,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3184,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3185,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3186,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3187,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3188,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3189,1
    - Dst: memset
      Src: /src/lxc/src/lxc/conf.c:3191,1
    - Dst: console::console
      Src: /src/lxc/src/lxc/conf.c:3191,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3195,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/conf.c:3195,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3196,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3200,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3201,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3202,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3203,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3204,1
    - Dst: rootfs::rootfs
      Src: /src/lxc/src/lxc/conf.c:3205,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3207,1
    - Dst: cgroup::cgroup
      Src: /src/lxc/src/lxc/conf.c:3207,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3208,1
    - Dst: cgroup2::cgroup2
      Src: /src/lxc/src/lxc/conf.c:3208,1
    - Dst: bpf_devices::bpf_devices
      Src: /src/lxc/src/lxc/conf.c:3210,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3211,1
    - Dst: bpf_devices::bpf_devices
      Src: /src/lxc/src/lxc/conf.c:3211,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3212,1
    - Dst: mount_entries::mount_entries
      Src: /src/lxc/src/lxc/conf.c:3212,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3213,1
    - Dst: caps::caps
      Src: /src/lxc/src/lxc/conf.c:3213,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3214,1
    - Dst: id_map::id_map
      Src: /src/lxc/src/lxc/conf.c:3214,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3217,1
    - Dst: environment::environment
      Src: /src/lxc/src/lxc/conf.c:3217,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3218,1
    - Dst: environment_runtime::environment_runtime
      Src: /src/lxc/src/lxc/conf.c:3218,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3219,1
    - Dst: environment_hooks::environment_hooks
      Src: /src/lxc/src/lxc/conf.c:3219,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3220,1
    - Dst: limits::limits
      Src: /src/lxc/src/lxc/conf.c:3220,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3221,1
    - Dst: sysctls::sysctls
      Src: /src/lxc/src/lxc/conf.c:3221,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3222,1
    - Dst: procs::procs
      Src: /src/lxc/src/lxc/conf.c:3222,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3225,1
    - Dst: hooks::hooks
      Src: /src/lxc/src/lxc/conf.c:3225,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3226,1
    - Dst: groups::groups
      Src: /src/lxc/src/lxc/conf.c:3226,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3227,1
    - Dst: state_clients::state_clients
      Src: /src/lxc/src/lxc/conf.c:3227,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3229,1
    - Dst: lsm_aa_raw::lsm_aa_raw
      Src: /src/lxc/src/lxc/conf.c:3229,1
    - Dst: shmount::shmount
      Src: /src/lxc/src/lxc/conf.c:3234,1
    - Dst: shmount::shmount
      Src: /src/lxc/src/lxc/conf.c:3235,1
    - Dst: memset
      Src: /src/lxc/src/lxc/conf.c:3243,1
    - Dst: init_groups::init_groups
      Src: /src/lxc/src/lxc/conf.c:3243,1
    - Dst: memset
      Src: /src/lxc/src/lxc/conf.c:3244,1
    - Dst: cgroup_meta::cgroup_meta
      Src: /src/lxc/src/lxc/conf.c:3244,1
    - Dst: memset
      Src: /src/lxc/src/lxc/conf.c:3245,1
    - Dst: ns_share::ns_share
      Src: /src/lxc/src/lxc/conf.c:3245,1
    - Dst: memset
      Src: /src/lxc/src/lxc/conf.c:3246,1
    - Dst: timens::timens
      Src: /src/lxc/src/lxc/conf.c:3246,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:3249,1
    - Dst: netdevs::netdevs
      Src: /src/lxc/src/lxc/conf.c:3249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3165
    functionDepth: 1
    functionLinenumber: 3165
    functionLinenumberEnd: 3252
    functionName: lxc_conf_init
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 4
    functionsReached:
    - caps::caps
    - ns_share::ns_share
    - init_groups::init_groups
    - INIT_LIST_HEAD
    - cgroup2::cgroup2
    - mount_entries::mount_entries
    - zalloc::zalloc
    - rootfs::rootfs
    - cgroup_meta::cgroup_meta
    - shmount::shmount
    - memset
    - id_map::id_map
    - groups::groups
    - sysctls::sysctls
    - console::console
    - timens::timens
    - hooks::hooks
    - lsm_aa_raw::lsm_aa_raw
    - procs::procs
    - environment::environment
    - limits::limits
    - bpf_devices::bpf_devices
    - netdevs::netdevs
    - cgroup::cgroup
    - environment_hooks::environment_hooks
    - environment_runtime::environment_runtime
    - state_clients::state_clients
    - strdup
    linkageType: ''
    returnType: struct lxc_conf
    signature: struct lxc_conf *lxc_conf_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:3268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - conf
    - idtype
    argTypes:
    - struct lxc_conf*
    - enum idtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3258
    functionDepth: 0
    functionLinenumber: 3258
    functionLinenumberEnd: 3280
    functionName: get_mapped_rootid
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: id_t
    signature: id_t get_mapped_rootid(const struct lxc_conf *conf, enum idtype idtype)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/conf.c:3293,1
    - Dst: readlinkat
      Src: /src/lxc/src/lxc/conf.c:3295,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/conf.c:3297,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3299,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3303,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/conf.c:3307,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:3308,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/conf.c:3310,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3312,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:3316,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:3318,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3321,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:3323,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:3325,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:3327,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/conf.c:3329,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:3334,1
    - Dst: safe_mount_beneath_at
      Src: /src/lxc/src/lxc/conf.c:3336,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:3338,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:3340,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/conf.c:3342,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3346,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:3348,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3350
      start: 3289
    functionDepth: 4
    functionLinenumber: 3289
    functionLinenumberEnd: 3350
    functionName: lxc_transient_proc
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - safe_mount_beneath_at
    - strnprintf
    - safe_mount
    - lxc_safe_int
    - INTTYPE_TO_STRLEN
    - ret_errno
    - umount2
    - mkdirat
    - INFO
    - log_trace
    - open_at
    - SYSWARN
    - readlinkat
    - log_error_errno
    - lxc_raw_getpid
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_transient_proc(struct lxc_rootfs *rootfs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_transient_proc
      Src: /src/lxc/src/lxc/conf.c:3357,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3367
      start: 3353
    functionDepth: 5
    functionLinenumber: 3353
    functionLinenumberEnd: 3367
    functionName: lxc_create_tmp_proc_mount
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - lxc_transient_proc
    linkageType: ''
    returnType: int
    signature: int lxc_create_tmp_proc_mount(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: umount2
      Src: /src/lxc/src/lxc/conf.c:3372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lxc_conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3369
    functionDepth: 0
    functionLinenumber: 3369
    functionLinenumberEnd: 3375
    functionName: tmp_proc_unmount
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - umount2
    linkageType: ''
    returnType: void
    signature: void tmp_proc_unmount(struct lxc_conf *lxc_conf)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:3387,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3390,1
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/conf.c:3394,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3397,1
    - Dst: memfd_create
      Src: /src/lxc/src/lxc/conf.c:3398,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3405,1
    - Dst: lxc_make_tmpfile
      Src: /src/lxc/src/lxc/conf.c:3409,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:3411,1
    - Dst: fd_to_fd
      Src: /src/lxc/src/lxc/conf.c:3416,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3418,1
    - Dst: lseek
      Src: /src/lxc/src/lxc/conf.c:3422,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3424,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/conf.c:3428,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3430,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/conf.c:3438,1
    - Dst: getline
      Src: /src/lxc/src/lxc/conf.c:3440,1
    - Dst: get_field
      Src: /src/lxc/src/lxc/conf.c:3443,1
    - Dst: get_field
      Src: /src/lxc/src/lxc/conf.c:3447,1
    - Dst: null_endofword
      Src: /src/lxc/src/lxc/conf.c:3451,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/conf.c:3452,1
    - Dst: null_endofword
      Src: /src/lxc/src/lxc/conf.c:3455,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:3456,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3458,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3462,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3378
    functionDepth: 2
    functionLinenumber: 3378
    functionLinenumberEnd: 3463
    functionName: turn_into_dependent_mounts
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - WARN
    - memfd_create
    - lxc_make_tmpfile
    - SYSERROR
    - fd_to_fd
    - get_field
    - strstr
    - open_at
    - TRACE
    - getline
    - null_endofword
    - move_fd
    - lseek
    - fdopen
    - mount
    linkageType: ''
    returnType: void
    signature: void turn_into_dependent_mounts(const struct lxc_rootfs *rootfs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:3473,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3475,1
    - Dst: turn_into_dependent_mounts
      Src: /src/lxc/src/lxc/conf.c:3477,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:3486,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3488,1
    - Dst: openat
      Src: /src/lxc/src/lxc/conf.c:3490,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3492,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:3494,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/conf.c:3497,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3499,1
    - Dst: lxc_mount_rootfs
      Src: /src/lxc/src/lxc/conf.c:3501,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3503,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - conf
    - name
    - lxcpath
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3468
    functionDepth: 3
    functionLinenumber: 3468
    functionLinenumberEnd: 3507
    functionName: lxc_setup_rootfs_prepare_root
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - log_error
    - lxc_mount_rootfs
    - openat
    - turn_into_dependent_mounts
    - open_at
    - log_trace
    - run_lxc_hooks
    - log_error_errno
    - mount
    linkageType: ''
    returnType: int
    signature: "int lxc_setup_rootfs_prepare_root(struct lxc_conf *conf, const char
      *name,\n\t\t\t\t  const char *lxcpath)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:3514,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/conf.c:3518,1
    - Dst: access
      Src: /src/lxc/src/lxc/conf.c:3524,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3509
    functionDepth: 1
    functionLinenumber: 3509
    functionLinenumberEnd: 3532
    functionName: verify_start_hooks
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - strnprintf
    - access
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: bool verify_start_hooks(struct lxc_conf *conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/lxc/src/lxc/conf.c:3541,1
    - Dst: memset
      Src: /src/lxc/src/lxc/conf.c:3544,1
    - Dst: lxc_id128_randomize
      Src: /src/lxc/src/lxc/conf.c:3545,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3546,1
    - Dst: lxc_id128_write
      Src: /src/lxc/src/lxc/conf.c:3550,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3552,1
    - Dst: chmod
      Src: /src/lxc/src/lxc/conf.c:3556,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3558,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/conf.c:3559,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:3563,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3565,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/conf.c:3567,1
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:3571,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:3576,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/conf.c:3577,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3534
    functionDepth: 4
    functionLinenumber: 3534
    functionLinenumberEnd: 3582
    functionName: lxc_setup_boot_id
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_id128_write
    - SYSERROR
    - access
    - lxc_id128_randomize
    - unlink
    - chmod
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_setup_boot_id(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: struct lsm_ops*::keyring_label_set
      Src: /src/lxc/src/lxc/conf.c:3590,1
    - Dst: struct lsm_ops*::keyring_label_set
      Src: /src/lxc/src/lxc/conf.c:3592,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3594,1
    - Dst: keyctl
      Src: /src/lxc/src/lxc/conf.c:3600,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3600,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3601,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3601,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/conf.c:3601,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:3605,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:3610,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/conf.c:3613,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - lsm_ops
    - conf
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3619
      start: 3584
    functionDepth: 1
    functionLinenumber: 3584
    functionLinenumberEnd: 3619
    functionName: lxc_setup_keyring
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - struct lsm_ops*::keyring_label_set
    - keyctl
    - prctl_arg
    - DEBUG
    - SYSWARN
    linkageType: ''
    returnType: int
    signature: int lxc_setup_keyring(struct lsm_ops *lsm_ops, const struct lxc_conf
      *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/conf.c:3627,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.c:3630,1
    - Dst: lxc_abstract_unix_recv_one_fd
      Src: /src/lxc/src/lxc/conf.c:3636,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3638,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3643
      start: 3621
    functionDepth: 1
    functionLinenumber: 3621
    functionLinenumberEnd: 3643
    functionName: lxc_rootfs_prepare_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - container_uses_namespace
    - is_empty_string
    - TRACE
    - lxc_abstract_unix_recv_one_fd
    linkageType: ''
    returnType: int
    signature: int lxc_rootfs_prepare_child(struct lxc_handler *handler)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_abstract_unix_recv_two_fds
      Src: /src/lxc/src/lxc/conf.c:3655,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3659,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:3662,1
    - Dst: mount_setattr
      Src: /src/lxc/src/lxc/conf.c:3666,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3671,1
    - Dst: lxc_abstract_unix_send_credential
      Src: /src/lxc/src/lxc/conf.c:3675,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3679,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3687
      start: 3645
    functionDepth: 1
    functionLinenumber: 3645
    functionLinenumberEnd: 3687
    functionName: lxc_idmapped_mounts_parent
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - lxc_abstract_unix_send_credential
    - log_trace
    - TRACE
    - __lxc_abstract_unix_recv_two_fds
    - mount_setattr
    linkageType: ''
    returnType: int
    signature: int lxc_idmapped_mounts_parent(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/conf.c:3691,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/conf.c:3702,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:3704,1
    - Dst: lxc_abstract_unix_recv_two_fds
      Src: /src/lxc/src/lxc/conf.c:3717,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3719,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3724,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:3728,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3729,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3731
      start: 3689
    functionDepth: 1
    functionLinenumber: 3689
    functionLinenumberEnd: 3731
    functionName: lxc_recv_ttys_from_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - ret_errno
    - lxc_abstract_unix_recv_two_fds
    - move_ptr
    - TRACE
    - call_cleaner
    - malloc
    linkageType: ''
    returnType: int
    signature: int lxc_recv_ttys_from_child(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wants_console
      Src: /src/lxc/src/lxc/conf.c:3738,1
    - Dst: __lxc_abstract_unix_send_two_fds
      Src: /src/lxc/src/lxc/conf.c:3745,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3750,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3733
    functionDepth: 1
    functionLinenumber: 3733
    functionLinenumberEnd: 3754
    functionName: lxc_send_console_to_parent
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - wants_console
    - TRACE
    - __lxc_abstract_unix_send_two_fds
    linkageType: ''
    returnType: int
    signature: int lxc_send_console_to_parent(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wants_console
      Src: /src/lxc/src/lxc/conf.c:3762,1
    - Dst: __lxc_abstract_unix_recv_two_fds
      Src: /src/lxc/src/lxc/conf.c:3769,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3774,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/conf.c:3776,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/conf.c:3777,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3781
      start: 3756
    functionDepth: 1
    functionLinenumber: 3756
    functionLinenumberEnd: 3781
    functionName: lxc_recv_console_from_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - TRACE
    - __lxc_abstract_unix_recv_two_fds
    - move_fd
    - wants_console
    linkageType: ''
    returnType: int
    signature: int lxc_recv_console_from_child(struct lxc_handler *handler)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_seccomp_recv_notifier_fd
      Src: /src/lxc/src/lxc/conf.c:3787,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3789,1
    - Dst: lxc_recv_devpts_from_child
      Src: /src/lxc/src/lxc/conf.c:3791,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3793,1
    - Dst: lxc_recv_ttys_from_child
      Src: /src/lxc/src/lxc/conf.c:3796,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3798,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/conf.c:3800,1
    - Dst: lxc_network_recv_name_and_ifindex_from_child
      Src: /src/lxc/src/lxc/conf.c:3801,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3803,1
    - Dst: lxc_recv_console_from_child
      Src: /src/lxc/src/lxc/conf.c:3806,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3808,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3812
      start: 3783
    functionDepth: 2
    functionLinenumber: 3783
    functionLinenumberEnd: 3812
    functionName: lxc_sync_fds_parent
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - container_uses_namespace
    - lxc_recv_ttys_from_child
    - lxc_network_recv_name_and_ifindex_from_child
    - lxc_recv_devpts_from_child
    - TRACE
    - syserror_ret
    - lxc_seccomp_recv_notifier_fd
    - lxc_recv_console_from_child
    linkageType: ''
    returnType: int
    signature: int lxc_sync_fds_parent(struct lxc_handler *handler)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_seccomp_send_notifier_fd
      Src: /src/lxc/src/lxc/conf.c:3818,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3820,1
    - Dst: lxc_send_devpts_to_parent
      Src: /src/lxc/src/lxc/conf.c:3822,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3824,1
    - Dst: lxc_send_ttys_to_parent
      Src: /src/lxc/src/lxc/conf.c:3826,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3828,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/conf.c:3830,1
    - Dst: lxc_network_send_name_and_ifindex_to_parent
      Src: /src/lxc/src/lxc/conf.c:3831,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3833,1
    - Dst: lxc_send_console_to_parent
      Src: /src/lxc/src/lxc/conf.c:3836,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3838,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:3840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3842
      start: 3814
    functionDepth: 3
    functionLinenumber: 3814
    functionLinenumberEnd: 3842
    functionName: lxc_sync_fds_child
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - container_uses_namespace
    - lxc_send_devpts_to_parent
    - lxc_send_console_to_parent
    - lxc_send_ttys_to_parent
    - TRACE
    - syserror_ret
    - lxc_seccomp_send_notifier_fd
    - lxc_network_send_name_and_ifindex_to_parent
    linkageType: ''
    returnType: int
    signature: int lxc_sync_fds_child(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: capabilities_allow
      Src: /src/lxc/src/lxc/conf.c:3849,1
    - Dst: capabilities_deny
      Src: /src/lxc/src/lxc/conf.c:3851,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/conf.c:3853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3856
      start: 3844
    functionDepth: 1
    functionLinenumber: 3844
    functionLinenumberEnd: 3856
    functionName: setup_capabilities
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - capabilities_allow
    - capabilities_deny
    - syserror_ret
    linkageType: ''
    returnType: int
    signature: int setup_capabilities(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mount
      Src: /src/lxc/src/lxc/conf.c:3863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3858
    functionDepth: 0
    functionLinenumber: 3858
    functionLinenumberEnd: 3864
    functionName: make_shmount_dependent_mount
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - mount
    linkageType: ''
    returnType: int
    signature: int make_shmount_dependent_mount(const struct lxc_conf *conf)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: lxc_rootfs_prepare_child
      Src: /src/lxc/src/lxc/conf.c:3872,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3874,1
    - Dst: lxc_setup_rootfs_prepare_root
      Src: /src/lxc/src/lxc/conf.c:3876,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3878,1
    - Dst: setup_utsname
      Src: /src/lxc/src/lxc/conf.c:3881,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3883,1
    - Dst: lxc_setup_keyring
      Src: /src/lxc/src/lxc/conf.c:3887,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3889,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/conf.c:3892,1
    - Dst: lxc_network_recv_from_parent
      Src: /src/lxc/src/lxc/conf.c:3893,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3895,1
    - Dst: lxc_setup_network_in_child_namespaces
      Src: /src/lxc/src/lxc/conf.c:3897,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3899,1
    - Dst: mount_autodev
      Src: /src/lxc/src/lxc/conf.c:3903,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3905,1
    - Dst: lxc_mount_auto_mounts
      Src: /src/lxc/src/lxc/conf.c:3911,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3913,1
    - Dst: setup_mount_fstab
      Src: /src/lxc/src/lxc/conf.c:3915,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3917,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/conf.c:3919,1
    - Dst: setup_mount_entries
      Src: /src/lxc/src/lxc/conf.c:3920,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3922,1
    - Dst: lxc_sync_wake_parent
      Src: /src/lxc/src/lxc/conf.c:3925,1
    - Dst: lxc_idmapped_mounts_child
      Src: /src/lxc/src/lxc/conf.c:3928,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:3930,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/conf.c:3932,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:3935,1
    - Dst: lxc_mount_auto_mounts
      Src: /src/lxc/src/lxc/conf.c:3941,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3943,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/conf.c:3945,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3947,1
    - Dst: lxc_rootfs_overmounted
      Src: /src/lxc/src/lxc/conf.c:3949,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3950,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/conf.c:3953,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3955,1
    - Dst: lxc_fill_autodev
      Src: /src/lxc/src/lxc/conf.c:3957,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3959,1
    - Dst: verify_start_hooks
      Src: /src/lxc/src/lxc/conf.c:3963,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3964,1
    - Dst: lxc_create_tmp_proc_mount
      Src: /src/lxc/src/lxc/conf.c:3966,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3968,1
    - Dst: lxc_setup_devpts_child
      Src: /src/lxc/src/lxc/conf.c:3970,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3972,1
    - Dst: lxc_finish_devpts_child
      Src: /src/lxc/src/lxc/conf.c:3974,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3976,1
    - Dst: lxc_setup_console
      Src: /src/lxc/src/lxc/conf.c:3978,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3981,1
    - Dst: lxc_create_ttys
      Src: /src/lxc/src/lxc/conf.c:3983,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3985,1
    - Dst: lxc_setup_dev_symlinks
      Src: /src/lxc/src/lxc/conf.c:3987,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3989,1
    - Dst: lxc_setup_rootfs_switch_root
      Src: /src/lxc/src/lxc/conf.c:3991,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3993,1
    - Dst: make_shmount_dependent_mount
      Src: /src/lxc/src/lxc/conf.c:3995,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:3997,1
    - Dst: lxc_setup_boot_id
      Src: /src/lxc/src/lxc/conf.c:4002,1
    - Dst: setup_personality
      Src: /src/lxc/src/lxc/conf.c:4004,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:4006,1
    - Dst: setup_sysctl_parameters
      Src: /src/lxc/src/lxc/conf.c:4012,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:4014,1
    - Dst: setup_capabilities
      Src: /src/lxc/src/lxc/conf.c:4016,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:4018,1
    - Dst: put_lxc_rootfs
      Src: /src/lxc/src/lxc/conf.c:4020,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/conf.c:4021,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 105
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4024
      start: 3866
    functionDepth: 9
    functionLinenumber: 3866
    functionLinenumberEnd: 4024
    functionName: lxc_setup
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - put_lxc_rootfs
    - make_shmount_dependent_mount
    - open_at
    - lxc_create_tmp_proc_mount
    - lxc_setup_rootfs_switch_root
    - lxc_network_recv_from_parent
    - lxc_sync_wake_parent
    - container_uses_namespace
    - log_error
    - lxc_setup_network_in_child_namespaces
    - setup_sysctl_parameters
    - lxc_rootfs_prepare_child
    - lxc_setup_keyring
    - setup_mount_fstab
    - lxc_setup_dev_symlinks
    - mount_autodev
    - NOTICE
    - lxc_mount_auto_mounts
    - verify_start_hooks
    - lxc_setup_boot_id
    - lxc_setup_console
    - setup_mount_entries
    - run_lxc_hooks
    - lxc_finish_devpts_child
    - lxc_fill_autodev
    - lxc_idmapped_mounts_child
    - setup_capabilities
    - setup_personality
    - lxc_create_ttys
    - setup_utsname
    - lxc_rootfs_overmounted
    - list_empty
    - lxc_setup_rootfs_prepare_root
    - log_error_errno
    - lxc_setup_devpts_child
    linkageType: ''
    returnType: int
    signature: int lxc_setup(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4033,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:4040,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/conf.c:4044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - name
    - hookname
    - conf
    - argv
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4026
    functionDepth: 4
    functionLinenumber: 4026
    functionLinenumberEnd: 4051
    functionName: run_lxc_hooks
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 4
    functionsReached:
    - run_script_argv
    - strequal
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int run_lxc_hooks(const char *name, char *hookname, struct lxc_conf
      *conf,\n\t\t  char *argv[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4057,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4058,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4059,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4060,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4066
      start: 4053
    functionDepth: 1
    functionLinenumber: 4053
    functionLinenumberEnd: 4066
    functionName: lxc_clear_config_caps
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - INIT_LIST_HEAD
    - list_del
    - free
    linkageType: ''
    returnType: int
    signature: int lxc_clear_config_caps(struct lxc_conf *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4073,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4074,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - id_map
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4068
    functionDepth: 1
    functionLinenumber: 4068
    functionLinenumberEnd: 4079
    functionName: lxc_free_idmap
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - free
    - INIT_LIST_HEAD
    - list_del
    linkageType: ''
    returnType: int
    signature: int lxc_free_idmap(struct list_head *id_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4073,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4075
      start: 4072
    functionDepth: 1
    functionLinenumber: 4072
    functionLinenumberEnd: 4075
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 5
    functionsReached:
    - free
    - list_del
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(map, nmap, id_map, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_free_idmap
      Src: /src/lxc/src/lxc/conf.c:4083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id_map
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4081
    functionDepth: 2
    functionLinenumber: 4081
    functionLinenumberEnd: 4085
    functionName: __lxc_free_idmap
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_free_idmap
    linkageType: ''
    returnType: int
    signature: int __lxc_free_idmap(struct list_head *id_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_free_idmap
      Src: /src/lxc/src/lxc/conf.c:4092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4088
    functionDepth: 2
    functionLinenumber: 4088
    functionLinenumberEnd: 4093
    functionName: lxc_clear_idmaps
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_free_idmap
    linkageType: ''
    returnType: int
    signature: int lxc_clear_idmaps(struct lxc_conf *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.c:4098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4101
      start: 4095
    functionDepth: 1
    functionLinenumber: 4095
    functionLinenumberEnd: 4101
    functionName: lxc_clear_namespace
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: int lxc_clear_namespace(struct lxc_conf *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4115,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4120,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4123,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4126,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:4128,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4131,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4134,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4137,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4138,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4139,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4140,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - c
    - key
    - version
    argTypes:
    - struct lxc_conf*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4147
      start: 4103
    functionDepth: 1
    functionLinenumber: 4103
    functionLinenumberEnd: 4147
    functionName: lxc_clear_cgroups
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - strequal
    - ret_errno
    - STRLITERALLEN
    - free
    - strnequal
    linkageType: ''
    returnType: int
    signature: int lxc_clear_cgroups(struct lxc_conf *c, const char *key, int version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4134,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4137,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4138,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4139,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4133
    functionDepth: 1
    functionLinenumber: 4133
    functionLinenumberEnd: 4141
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 5
    functionsReached:
    - free
    - list_del
    - strequal
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(cgroup, ncgroup, list, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_cgroup2_devices
      Src: /src/lxc/src/lxc/conf.c:4151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4152
      start: 4149
    functionDepth: 1
    functionLinenumber: 4149
    functionLinenumberEnd: 4152
    functionName: lxc_clear_cgroups_devices
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - lxc_clear_cgroup2_devices
    linkageType: ''
    returnType: void
    signature: void lxc_clear_cgroups_devices(struct lxc_conf *conf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4160,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4160,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:4162,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4162,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4163,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:4164,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4164,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4165,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4167,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4169,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4170,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4173,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.c:4174,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4175,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4154
    functionDepth: 1
    functionLinenumber: 4154
    functionLinenumberEnd: 4182
    functionName: lxc_clear_limits
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - ret_errno
    - strequal
    - STRLITERALLEN
    - list_for_each_entry_safe
    - strnequal
    - free
    - free_disarm
    linkageType: ''
    returnType: int
    signature: int lxc_clear_limits(struct lxc_conf *c, const char *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4190,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:4192,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4192,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4193,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4197,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4198,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4201,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4202,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4203,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4204,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4211
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4211
    functionName: lxc_clear_sysctls
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - strequal
    - STRLITERALLEN
    - list_for_each_entry_safe
    - strnequal
    - free
    linkageType: ''
    returnType: int
    signature: int lxc_clear_sysctls(struct lxc_conf *c, const char *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4219,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:4221,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4221,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4222,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4226,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4227,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4230,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4231,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4232,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4233,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4240
      start: 4213
    functionDepth: 1
    functionLinenumber: 4213
    functionLinenumberEnd: 4240
    functionName: lxc_clear_procs
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - strequal
    - STRLITERALLEN
    - list_for_each_entry_safe
    - strnequal
    - free
    linkageType: ''
    returnType: int
    signature: int lxc_clear_procs(struct lxc_conf *c, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4246,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4247,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4248,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4249,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4254
      start: 4242
    functionDepth: 1
    functionLinenumber: 4242
    functionLinenumberEnd: 4254
    functionName: lxc_clear_groups
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - INIT_LIST_HEAD
    - list_del
    - free
    linkageType: ''
    returnType: int
    signature: int lxc_clear_groups(struct lxc_conf *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4261,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4262,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4263,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4264,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - environment
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4256
    functionDepth: 1
    functionLinenumber: 4256
    functionLinenumberEnd: 4269
    functionName: lxc_clear_environment
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - free
    - INIT_LIST_HEAD
    - list_del
    linkageType: ''
    returnType: int
    signature: int lxc_clear_environment(struct list_head *environment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4261,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4262,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4263,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4265
      start: 4260
    functionDepth: 1
    functionLinenumber: 4260
    functionLinenumberEnd: 4265
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 9
    functionsReached:
    - free
    - list_del
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(env, nenv, environment, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4275,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4276,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4277,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4278,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4283
      start: 4271
    functionDepth: 1
    functionLinenumber: 4271
    functionLinenumberEnd: 4283
    functionName: lxc_clear_mount_entries
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - INIT_LIST_HEAD
    - list_del
    - free
    linkageType: ''
    returnType: int
    signature: int lxc_clear_mount_entries(struct lxc_conf *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4285
    functionDepth: 0
    functionLinenumber: 4285
    functionLinenumberEnd: 4289
    functionName: lxc_clear_automounts
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_clear_automounts(struct lxc_conf *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4297,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/conf.c:4299,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4299,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/conf.c:4300,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:4305,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4306,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4307,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4308,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4309,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4311,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:4317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4320
      start: 4291
    functionDepth: 1
    functionLinenumber: 4291
    functionLinenumberEnd: 4320
    functionName: lxc_clear_hooks
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - strequal
    - STRLITERALLEN
    - list_for_each_entry_safe
    - strnequal
    - free
    - log_error
    linkageType: ''
    returnType: int
    signature: int lxc_clear_hooks(struct lxc_conf *c, const char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.c:4326,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.c:4327,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4328,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4329,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4322
    functionDepth: 1
    functionLinenumber: 4322
    functionLinenumberEnd: 4334
    functionName: lxc_clear_apparmor_raw
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - INIT_LIST_HEAD
    - list_del
    - free
    linkageType: ''
    returnType: int
    signature: int lxc_clear_apparmor_raw(struct lxc_conf *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_conf_free
      Src: /src/lxc/src/lxc/conf.c:4343,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4344,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4345,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4346,1
    - Dst: put_lxc_rootfs
      Src: /src/lxc/src/lxc/conf.c:4347,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4348,1
    - Dst: close
      Src: /src/lxc/src/lxc/conf.c:4350,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4351,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4352,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4353,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4354,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4355,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4356,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4357,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4358,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4359,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4360,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4361,1
    - Dst: lxc_free_networks
      Src: /src/lxc/src/lxc/conf.c:4362,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4363,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4364,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4365,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4366,1
    - Dst: lxc_seccomp_free
      Src: /src/lxc/src/lxc/conf.c:4367,1
    - Dst: lxc_clear_config_caps
      Src: /src/lxc/src/lxc/conf.c:4368,1
    - Dst: lxc_clear_cgroups
      Src: /src/lxc/src/lxc/conf.c:4369,1
    - Dst: lxc_clear_cgroups
      Src: /src/lxc/src/lxc/conf.c:4370,1
    - Dst: lxc_clear_cgroups_devices
      Src: /src/lxc/src/lxc/conf.c:4371,1
    - Dst: lxc_clear_hooks
      Src: /src/lxc/src/lxc/conf.c:4372,1
    - Dst: lxc_clear_mount_entries
      Src: /src/lxc/src/lxc/conf.c:4373,1
    - Dst: lxc_clear_idmaps
      Src: /src/lxc/src/lxc/conf.c:4374,1
    - Dst: lxc_clear_groups
      Src: /src/lxc/src/lxc/conf.c:4375,1
    - Dst: lxc_clear_environment
      Src: /src/lxc/src/lxc/conf.c:4376,1
    - Dst: lxc_clear_limits
      Src: /src/lxc/src/lxc/conf.c:4377,1
    - Dst: lxc_clear_sysctls
      Src: /src/lxc/src/lxc/conf.c:4378,1
    - Dst: lxc_clear_procs
      Src: /src/lxc/src/lxc/conf.c:4379,1
    - Dst: lxc_clear_apparmor_raw
      Src: /src/lxc/src/lxc/conf.c:4380,1
    - Dst: lxc_clear_namespace
      Src: /src/lxc/src/lxc/conf.c:4381,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4382,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4383,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4384,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4385,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4386,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4387,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4388,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4389,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4390,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4392
      start: 4336
    functionDepth: 4
    functionLinenumber: 4336
    functionLinenumberEnd: 4392
    functionName: lxc_conf_free
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 5
    functionsReached:
    - put_lxc_rootfs
    - close
    - lxc_clear_idmaps
    - lxc_clear_procs
    - lxc_clear_apparmor_raw
    - lxc_clear_groups
    - lxc_clear_namespace
    - free
    - lxc_clear_cgroups_devices
    - lxc_clear_hooks
    - lxc_clear_cgroups
    - lxc_clear_environment
    - lxc_free_networks
    - lxc_clear_config_caps
    - lxc_clear_sysctls
    - lxc_clear_limits
    - lxc_clear_mount_entries
    - lxc_terminal_conf_free
    - lxc_seccomp_free
    linkageType: ''
    returnType: void
    signature: void lxc_conf_free(struct lxc_conf *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4407,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/conf.c:4413,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4414,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:4419,1
    - Dst: struct userns_fn_data*::fn
      Src: /src/lxc/src/lxc/conf.c:4422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4423
      start: 4401
    functionDepth: 1
    functionLinenumber: 4401
    functionLinenumberEnd: 4423
    functionName: run_userns_fn
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - TRACE
    - close_prot_errno_disarm
    - struct userns_fn_data*::fn
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: int run_userns_fn(void *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mapped_nsid_add
      Src: /src/lxc/src/lxc/conf.c:4436,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/conf.c:4438,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/conf.c:4439,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4442,1
    - Dst: mapped_nsid_add
      Src: /src/lxc/src/lxc/conf.c:4444,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/conf.c:4446,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/conf.c:4447,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4450,1
    - Dst: mapped_hostid_add
      Src: /src/lxc/src/lxc/conf.c:4454,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/conf.c:4456,1
    - Dst: mapped_hostid_add
      Src: /src/lxc/src/lxc/conf.c:4459,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/conf.c:4461,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4464,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4465,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4469,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4470,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4474,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4475,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4479,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4480,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:4483,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - conf
    - resuid
    - resgid
    - head_ret
    argTypes:
    - struct lxc_conf*
    - uid_t*
    - gid_t*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4425
    functionDepth: 2
    functionLinenumber: 4425
    functionLinenumberEnd: 4491
    functionName: get_minimal_idmap
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - getegid
    - move_ptr
    - list_add_tail
    - geteuid
    - TRACE
    - mapped_nsid_add
    - mapped_hostid_add
    - sysdebug
    linkageType: ''
    returnType: int
    signature: "int get_minimal_idmap(const struct lxc_conf *conf, uid_t *resuid,\n\t\t\t
      \    gid_t *resgid, struct list_head *head_ret)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4508,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/conf.c:4509,1
    - Dst: get_minimal_idmap
      Src: /src/lxc/src/lxc/conf.c:4523,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4525,1
    - Dst: pipe2
      Src: /src/lxc/src/lxc/conf.c:4527,1
    - Dst: lxc_raw_clone_cb
      Src: /src/lxc/src/lxc/conf.c:4535,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:4537,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4541,1
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/conf.c:4543,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:4546,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:4547,1
    - Dst: lxc_map_ids
      Src: /src/lxc/src/lxc/conf.c:4552,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:4554,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:4559,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4560,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4565,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4566,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/conf.c:4570,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - conf
    - data
    - fn_name
    argTypes:
    - struct lxc_conf*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4576
      start: 4505
    functionDepth: 4
    functionLinenumber: 4505
    functionLinenumberEnd: 4576
    functionName: userns_exec_1
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 1
    functionsReached:
    - LIST_HEAD
    - lxc_raw_clone_cb
    - close_prot_errno_disarm
    - ret_errno
    - lxc_write_nointr
    - pipe2
    - SYSERROR
    - TRACE
    - list_for_each_entry
    - lxc_map_ids
    - wait_for_pid
    - call_cleaner
    - ERROR
    - get_minimal_idmap
    - lxc_log_trace
    linkageType: ''
    returnType: int
    signature: "int userns_exec_1(const struct lxc_conf *conf, int (*fn)(void *),
      void *data,\n\t\t  const char *fn_name)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4582,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/conf.c:4583,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4592,1
    - Dst: get_minimal_idmap
      Src: /src/lxc/src/lxc/conf.c:4594,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4596,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/conf.c:4598,1
    - Dst: fork
      Src: /src/lxc/src/lxc/conf.c:4602,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4604,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4609,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/conf.c:4611,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4613,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4614,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:4617,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4619,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/conf.c:4621,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4623,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4625,1
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/conf.c:4627,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4628,1
    - Dst: setresgid
      Src: /src/lxc/src/lxc/conf.c:4630,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4632,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4634,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/conf.c:4637,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4639,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4641,1
    - Dst: fn_child
      Src: /src/lxc/src/lxc/conf.c:4644,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4646,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4647,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4650,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4653,1
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/conf.c:4655,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:4658,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:4659,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/conf.c:4663,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4665,1
    - Dst: lxc_map_ids
      Src: /src/lxc/src/lxc/conf.c:4670,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:4672,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:4677,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4679,1
    - Dst: fn_parent
      Src: /src/lxc/src/lxc/conf.c:4683,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4684,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4685,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4689,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4690,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/conf.c:4696,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 84
    argCount: 3
    argNames:
    - conf
    - fn_parent_data
    - fn_child_data
    argTypes:
    - struct lxc_conf*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4697
      start: 4578
    functionDepth: 4
    functionLinenumber: 4578
    functionLinenumberEnd: 4697
    functionName: userns_exec_minimal
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - LIST_HEAD
    - setresgid
    - setresuid
    - wait_for_pid
    - close_prot_errno_disarm
    - socketpair
    - fn_child
    - fn_parent
    - get_minimal_idmap
    - fork
    - SYSERROR
    - TRACE
    - lxc_write_nointr
    - ret_errno
    - unshare
    - lxc_drop_groups
    - _exit
    - lxc_read_nointr
    - list_for_each_entry
    - lxc_map_ids
    - call_cleaner
    - ERROR
    - lxc_log_trace
    linkageType: ''
    returnType: int
    signature: "int userns_exec_minimal(const struct lxc_conf *conf,\n\t\t\tint (*fn_parent)(void
      *), void *fn_parent_data,\n\t\t\tint (*fn_child)(void *), void *fn_child_data)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4702,1
    - Dst: pipe2
      Src: /src/lxc/src/lxc/conf.c:4716,1
    - Dst: lxc_clone
      Src: /src/lxc/src/lxc/conf.c:4727,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:4729,1
    - Dst: close
      Src: /src/lxc/src/lxc/conf.c:4733,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/conf.c:4736,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/conf.c:4737,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:4740,1
    - Dst: memdup
      Src: /src/lxc/src/lxc/conf.c:4743,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4747,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4748,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:4771,1
    - Dst: mapped_hostid_add
      Src: /src/lxc/src/lxc/conf.c:4777,1
    - Dst: mapped_hostid_add
      Src: /src/lxc/src/lxc/conf.c:4782,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:4787,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/conf.c:4792,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4798,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4799,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4804,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4805,1
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/conf.c:4808,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:4809,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:4810,1
    - Dst: lxc_map_ids
      Src: /src/lxc/src/lxc/conf.c:4817,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:4819,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:4824,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4825,1
    - Dst: close
      Src: /src/lxc/src/lxc/conf.c:4831,1
    - Dst: close
      Src: /src/lxc/src/lxc/conf.c:4832,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/conf.c:4836,1
    - Dst: __lxc_free_idmap
      Src: /src/lxc/src/lxc/conf.c:4838,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4841,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.c:4843,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 102
    argCount: 3
    argNames:
    - conf
    - data
    - fn_name
    argTypes:
    - struct lxc_conf*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4846
      start: 4699
    functionDepth: 4
    functionLinenumber: 4699
    functionLinenumberEnd: 4846
    functionName: userns_exec_full
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 3
    functionsReached:
    - LIST_HEAD
    - lxc_clone
    - close
    - wait_for_pid
    - free
    - __lxc_free_idmap
    - getegid
    - move_ptr
    - list_add_tail
    - SYSERROR
    - geteuid
    - TRACE
    - DEBUG
    - lxc_write_nointr
    - mapped_hostid_add
    - pipe2
    - list_for_each_entry
    - lxc_map_ids
    - ERROR
    - lxc_log_trace
    - memdup
    linkageType: ''
    returnType: int
    signature: "int userns_exec_full(struct lxc_conf *conf, int (*fn)(void *), void
      *data,\n\t\t     const char *fn_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/conf.c:4854,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4856,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/conf.c:4863,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/conf.c:4864,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/conf.c:4866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - idmap_list
    - idtype
    - nsid
    - hostid
    - range
    argTypes:
    - struct list_head*
    - enum idtype
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4869
      start: 4848
    functionDepth: 1
    functionLinenumber: 4848
    functionLinenumberEnd: 4869
    functionName: add_idmap_entry
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - move_ptr
    - list_add_tail
    - INFO
    - zalloc
    linkageType: ''
    returnType: int
    signature: "int add_idmap_entry(struct list_head *idmap_list, enum idtype idtype,\n\t\t\t
      \  unsigned long nsid, unsigned long hostid,\n\t\t\t   unsigned long range)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/lxc/src/lxc/conf.c:4874,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/conf.c:4875,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.c:4887,1
    - Dst: get_mapped_rootid
      Src: /src/lxc/src/lxc/conf.c:4892,1
    - Dst: uid_valid
      Src: /src/lxc/src/lxc/conf.c:4893,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:4894,1
    - Dst: get_mapped_rootid
      Src: /src/lxc/src/lxc/conf.c:4896,1
    - Dst: gid_valid
      Src: /src/lxc/src/lxc/conf.c:4897,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:4898,1
    - Dst: open
      Src: /src/lxc/src/lxc/conf.c:4901,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4903,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/conf.c:4909,1
    - Dst: fchown
      Src: /src/lxc/src/lxc/conf.c:4912,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4914,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/conf.c:4918,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/conf.c:4924,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/conf.c:4927,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4929,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/conf.c:4931,1
    - Dst: mapped_hostid
      Src: /src/lxc/src/lxc/conf.c:4932,1
    - Dst: fchown
      Src: /src/lxc/src/lxc/conf.c:4933,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4935,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:4938,1
    - Dst: add_idmap_entry
      Src: /src/lxc/src/lxc/conf.c:4942,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4944,1
    - Dst: add_idmap_entry
      Src: /src/lxc/src/lxc/conf.c:4947,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4949,1
    - Dst: add_idmap_entry
      Src: /src/lxc/src/lxc/conf.c:4952,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4954,1
    - Dst: add_idmap_entry
      Src: /src/lxc/src/lxc/conf.c:4957,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4959,1
    - Dst: add_idmap_entry
      Src: /src/lxc/src/lxc/conf.c:4963,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/conf.c:4966,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/conf.c:4969,1
    - Dst: fork
      Src: /src/lxc/src/lxc/conf.c:4973,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4975,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4980,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/conf.c:4982,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:4984,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4985,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:4988,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4990,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/conf.c:4992,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4994,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:4996,1
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/conf.c:4998,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:4999,1
    - Dst: setresgid
      Src: /src/lxc/src/lxc/conf.c:5001,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:5003,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:5004,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/conf.c:5007,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:5009,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:5010,1
    - Dst: fchown
      Src: /src/lxc/src/lxc/conf.c:5013,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:5015,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:5016,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:5019,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/conf.c:5020,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:5023,1
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/conf.c:5025,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/conf.c:5028,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:5029,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/conf.c:5033,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:5035,1
    - Dst: lxc_map_ids
      Src: /src/lxc/src/lxc/conf.c:5040,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5042,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/conf.c:5047,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/conf.c:5049,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:5054,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.c:5055,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:5059,1
    - Dst: wait_exited
      Src: /src/lxc/src/lxc/conf.c:5061,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 132
    argCount: 3
    argNames:
    - path
    - path_fd
    - conf
    argTypes:
    - char*
    - int
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5065
      start: 4871
    functionDepth: 4
    functionLinenumber: 4871
    functionLinenumberEnd: 5065
    functionName: userns_exec_mapped_root
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 1
    functionsReached:
    - LIST_HEAD
    - uid_valid
    - log_info
    - get_mapped_rootid
    - mapped_hostid
    - gid_valid
    - setresgid
    - setresuid
    - fchown
    - close_prot_errno_disarm
    - socketpair
    - log_error
    - log_trace
    - open
    - fork
    - wait_exited
    - getegid
    - SYSERROR
    - geteuid
    - TRACE
    - add_idmap_entry
    - lxc_write_nointr
    - ret_errno
    - unshare
    - lxc_drop_groups
    - _exit
    - fstat
    - lxc_read_nointr
    - list_for_each_entry
    - lxc_map_ids
    - call_cleaner
    - ERROR
    - log_error_errno
    - lxc_log_trace
    linkageType: ''
    returnType: int
    signature: "int userns_exec_mapped_root(const char *path, int path_fd,\n\t\t\t
      \   const struct lxc_conf *conf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/lxc/src/lxc/conf.c:5076,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/conf.c:5080,1
    - Dst: getpwuid_r
      Src: /src/lxc/src/lxc/conf.c:5084,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/conf.c:5084,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:5087,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:5089,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/conf.c:5089,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/conf.c:5092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5068
    functionDepth: 1
    functionLinenumber: 5068
    functionLinenumberEnd: 5093
    functionName: getuname
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - WARN
    - getpwuid_r
    - log_error
    - sysconf
    - geteuid
    - zalloc
    - strdup
    linkageType: ''
    returnType: char
    signature: char *getuname(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/lxc/src/lxc/conf.c:5104,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/conf.c:5108,1
    - Dst: getgrgid_r
      Src: /src/lxc/src/lxc/conf.c:5112,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/conf.c:5112,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:5115,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/conf.c:5117,1
    - Dst: getegid
      Src: /src/lxc/src/lxc/conf.c:5117,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/conf.c:5120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5121
      start: 5096
    functionDepth: 1
    functionLinenumber: 5096
    functionLinenumberEnd: 5121
    functionName: getgname
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - WARN
    - getgrgid_r
    - getegid
    - log_error
    - sysconf
    - zalloc
    - strdup
    linkageType: ''
    returnType: char
    signature: char *getgname(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: getuname
      Src: /src/lxc/src/lxc/conf.c:5131,1
    - Dst: getgname
      Src: /src/lxc/src/lxc/conf.c:5135,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/conf.c:5139,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5141,1
    - Dst: getline
      Src: /src/lxc/src/lxc/conf.c:5145,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:5149,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:5157,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:5160,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/conf.c:5167,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/conf.c:5170,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:5171,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/conf.c:5172,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:5173,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/conf.c:5176,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5178,1
    - Dst: getline
      Src: /src/lxc/src/lxc/conf.c:5182,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:5186,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/conf.c:5194,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/conf.c:5197,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/conf.c:5204,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/conf.c:5207,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:5208,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/conf.c:5209,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/conf.c:5210,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5214,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5215,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5219,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5220,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5221,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5222,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5223,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/conf.c:5224,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5225
      start: 5124
    functionDepth: 2
    functionLinenumber: 5124
    functionLinenumberEnd: 5225
    functionName: suggest_default_idmap
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 1
    functionsReached:
    - WARN
    - strequal
    - lxc_safe_uint
    - strchr
    - getline
    - getgname
    - strcspn
    - ERROR
    - fopen
    - getuname
    linkageType: ''
    returnType: void
    signature: void suggest_default_idmap(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/lxc/src/lxc/conf.c:5234,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:5236,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:5238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - environment
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5242
      start: 5227
    functionDepth: 1
    functionLinenumber: 5227
    functionLinenumberEnd: 5242
    functionName: lxc_set_environment
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 0
    functionsReached:
    - syserror
    - TRACE
    - setenv
    linkageType: ''
    returnType: int
    signature: int lxc_set_environment(const struct list_head *environment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/lxc/src/lxc/conf.c:5234,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/conf.c:5236,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/conf.c:5238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5239
      start: 5231
    functionDepth: 1
    functionLinenumber: 5231
    functionLinenumberEnd: 5239
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/conf.c
    functionUses: 21
    functionsReached:
    - syserror
    - TRACE
    - setenv
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(env, environment, head)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - priority
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: lxc_log_priority_to_syslog
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_log_priority_to_syslog(int priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: lxc_log_get_container_name
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_log_get_container_name(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: lxc_log_get_fd
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_log_get_fd(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/log.c:114,1
    - Dst: va_copy
      Src: /src/lxc/src/lxc/log.c:116,1
    - Dst: vsnprintf
      Src: /src/lxc/src/lxc/log.c:119,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/log.c:121,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/log.c:123,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/log.c:125,1
    - Dst: vsnprintf
      Src: /src/lxc/src/lxc/log.c:129,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/log.c:132,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/log.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct lxc_log_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: lxc_log_get_va_msg
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - va_copy
    - ret_set_errno
    - move_ptr
    - va_end
    - vsnprintf
    - malloc
    linkageType: ''
    returnType: char
    signature: char *lxc_log_get_va_msg(struct lxc_log_event *event)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_get_container_name
      Src: /src/lxc/src/lxc/log.c:146,1
    - Dst: lxc_log_get_va_msg
      Src: /src/lxc/src/lxc/log.c:148,1
    - Dst: syslog
      Src: /src/lxc/src/lxc/log.c:152,1
    - Dst: lxc_log_priority_to_syslog
      Src: /src/lxc/src/lxc/log.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - appender
    - event
    argTypes:
    - struct lxc_log_appender*
    - struct lxc_log_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 162
    functionName: log_append_syslog
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - lxc_log_priority_to_syslog
    - syslog
    - lxc_log_get_va_msg
    - lxc_log_get_container_name
    linkageType: ''
    returnType: int
    signature: "int log_append_syslog(const struct lxc_log_appender *appender,\n\t\t\t
      \    struct lxc_log_event *event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_get_container_name
      Src: /src/lxc/src/lxc/log.c:172,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/log.c:174,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/log.c:177,1
    - Dst: vfprintf
      Src: /src/lxc/src/lxc/log.c:181,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/log.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - appender
    - event
    argTypes:
    - struct lxc_log_appender*
    - struct lxc_log_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 186
    functionName: log_append_stderr
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - vfprintf
    - lxc_log_get_container_name
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int log_append_stderr(const struct lxc_log_appender *appender,\n\t\t\t
      \    struct lxc_log_event *event)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/log.c:192,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/log.c:281,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:283,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/log.c:289,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - bufsize
    - time
    argTypes:
    - char*
    - size_t
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 297
    functionName: lxc_unix_epoch_to_utc
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - ret_errno
    - INTTYPE_TO_STRLEN
    linkageType: ''
    returnType: int
    signature: int lxc_unix_epoch_to_utc(char *buf, size_t bufsize, const struct timespec
      *time)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_get_container_name
      Src: /src/lxc/src/lxc/log.c:335,1
    - Dst: lxc_unix_epoch_to_utc
      Src: /src/lxc/src/lxc/log.c:343,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/log.c:351,1
    - Dst: lxc_log_priority_to_string
      Src: /src/lxc/src/lxc/log.c:357,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:362,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/log.c:364,1
    - Dst: vsnprintf
      Src: /src/lxc/src/lxc/log.c:367,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/log.c:376,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/log.c:380,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - appender
    - event
    argTypes:
    - struct lxc_log_appender*
    - struct lxc_log_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 381
    functionName: log_append_logfile
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_log_get_container_name
    - snprintf
    - lxc_log_priority_to_string
    - vsnprintf
    - STRARRAYLEN
    - lxc_unix_epoch_to_utc
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: "int log_append_logfile(const struct lxc_log_appender *appender,\n\t\t\t
      \     struct lxc_log_event *event)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_get_container_name
      Src: /src/lxc/src/lxc/log.c:390,1
    - Dst: lxc_log_get_va_msg
      Src: /src/lxc/src/lxc/log.c:391,1
    - Dst: print_log
      Src: /src/lxc/src/lxc/log.c:396,1
    - Dst: print_log
      Src: /src/lxc/src/lxc/log.c:402,1
    - Dst: print_log
      Src: /src/lxc/src/lxc/log.c:409,1
    - Dst: print_log
      Src: /src/lxc/src/lxc/log.c:415,1
    - Dst: print_log
      Src: /src/lxc/src/lxc/log.c:423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - appender
    - event
    argTypes:
    - struct lxc_log_appender*
    - struct lxc_log_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 433
    functionName: log_append_dlog
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - print_log
    - lxc_log_get_va_msg
    - lxc_log_get_container_name
    linkageType: ''
    returnType: int
    signature: "int log_append_dlog(const struct lxc_log_appender *appender,\n\t\t\t
      \    struct lxc_log_event *event)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/log.c:490,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:491,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/log.c:494,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:496,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/log.c:498,1
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/log.c:507,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/log.c:507,1
    - Dst: is_in_comm
      Src: /src/lxc/src/lxc/log.c:509,1
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/log.c:512,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/log.c:512,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/log.c:516,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 520
    functionName: build_dir
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - lxc_unpriv
    - ret_errno
    - strlen
    - is_empty_string
    - is_in_comm
    - strdup
    - log_error_errno
    - mkdir
    linkageType: ''
    returnType: int
    signature: int build_dir(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/log.c:528,1
    - Dst: open
      Src: /src/lxc/src/lxc/log.c:528,1
    - Dst: is_in_comm
      Src: /src/lxc/src/lxc/log.c:530,1
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/log.c:531,1
    - Dst: open
      Src: /src/lxc/src/lxc/log.c:531,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/log.c:534,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/log.c:537,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/log.c:539,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/log.c:541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 543
    functionName: log_open
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - lxc_unpriv
    - fcntl
    - move_fd
    - is_in_comm
    - log_error_errno
    - open
    linkageType: ''
    returnType: int
    signature: int log_open(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/log.c:559,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/log.c:575,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/log.c:582,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/log.c:582,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/log.c:584,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/log.c:586,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/log.c:588,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/log.c:591,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/log.c:593,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/log.c:595,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/log.c:597,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 598
    functionName: build_log_path
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - ret_set_errno
    - move_ptr
    - strlen
    - malloc
    linkageType: ''
    returnType: char
    signature: char *build_log_path(const char *name, const char *lxcpath)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_close
      Src: /src/lxc/src/lxc/log.c:612,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/log.c:614,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:615,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/log.c:617,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:619,1
    - Dst: build_dir
      Src: /src/lxc/src/lxc/log.c:628,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/log.c:629,1
    - Dst: log_open
      Src: /src/lxc/src/lxc/log.c:631,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/log.c:635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - fname
    - create_dirs
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 637
    functionName: __lxc_log_set_file
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - log_open
    - ret_errno
    - strlen
    - is_empty_string
    - build_dir
    - strdup
    - log_error_errno
    - lxc_log_close
    linkageType: ''
    returnType: int
    signature: int __lxc_log_set_file(const char *fname, int create_dirs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: build_log_path
      Src: /src/lxc/src/lxc/log.c:643,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/log.c:645,1
    - Dst: __lxc_log_set_file
      Src: /src/lxc/src/lxc/log.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - lxcpath
    - create_dirs
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 639
    functionDepth: 4
    functionLinenumber: 639
    functionLinenumberEnd: 648
    functionName: _lxc_log_set_file
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 1
    functionsReached:
    - build_log_path
    - log_error_errno
    - __lxc_log_set_file
    linkageType: ''
    returnType: int
    signature: int _lxc_log_set_file(const char *name, const char *lxcpath, int create_dirs)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:661,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/log.c:664,1
    - Dst: lxc_log_priority_to_int
      Src: /src/lxc/src/lxc/log.c:667,1
    - Dst: lxc_log_set_prefix
      Src: /src/lxc/src/lxc/log.c:679,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/log.c:682,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/log.c:685,1
    - Dst: __lxc_log_set_file
      Src: /src/lxc/src/lxc/log.c:688,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/log.c:690,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/log.c:704,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/log.c:704,1
    - Dst: _lxc_log_set_file
      Src: /src/lxc/src/lxc/log.c:705,1
    - Dst: _lxc_log_set_file
      Src: /src/lxc/src/lxc/log.c:709,1
    - Dst: _lxc_log_set_file
      Src: /src/lxc/src/lxc/log.c:713,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/log.c:721,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 1
    argNames:
    - log
    argTypes:
    - struct lxc_log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 655
    functionDepth: 5
    functionLinenumber: 655
    functionLinenumberEnd: 731
    functionName: lxc_log_init
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 10
    functionsReached:
    - lxc_log_set_prefix
    - ret_errno
    - strequal
    - log_warn_errno
    - _lxc_log_set_file
    - INFO
    - geteuid
    - __lxc_log_set_file
    - lxc_log_priority_to_int
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_log_init(struct lxc_log *log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closelog
      Src: /src/lxc/src/lxc/log.c:735,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/log.c:737,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/log.c:739,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/log.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 742
    functionName: lxc_log_close
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 2
    functionsReached:
    - closelog
    - close_prot_errno_disarm
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_log_close(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: openlog
      Src: /src/lxc/src/lxc/log.c:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - facility
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 769
    functionName: lxc_log_syslog
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - openlog
    linkageType: ''
    returnType: int
    signature: int lxc_log_syslog(int facility)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 774
    functionName: lxc_log_syslog_enable
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_log_syslog_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 779
    functionName: lxc_log_syslog_disable
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_log_syslog_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/log.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - level
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 793
    functionName: lxc_log_set_level
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_log_set_level(int *dest, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 807
    functionName: lxc_log_get_level
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_log_get_level(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_get_level
      Src: /src/lxc/src/lxc/log.c:813,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/log.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 818
    functionName: lxc_log_has_valid_level
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - lxc_log_get_level
    linkageType: ''
    returnType: bool
    signature: bool lxc_log_has_valid_level(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/log.c:828,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/log.c:830,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/log.c:831,1
    - Dst: build_dir
      Src: /src/lxc/src/lxc/log.c:833,1
    - Dst: log_open
      Src: /src/lxc/src/lxc/log.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - fname
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 840
    functionName: lxc_log_set_file
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 2
    functionsReached:
    - log_open
    - close_prot_errno_disarm
    - ret_errno
    - is_empty_string
    - build_dir
    linkageType: ''
    returnType: int
    signature: int lxc_log_set_file(int *fd, const char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 845
    functionName: lxc_log_get_file
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_log_get_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/log.c:850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 851
    functionName: lxc_log_set_prefix
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 1
    functionsReached:
    - strlcpy
    linkageType: ''
    returnType: void
    signature: void lxc_log_set_prefix(const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 856
    functionName: lxc_log_get_prefix
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_log_get_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 862
    functionName: lxc_log_options_no_override
    functionSourceFile: /src/lxc/src/lxc/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_log_options_no_override(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_abstract_unix_send_two_fds
      Src: /src/lxc/src/lxc/af_unix.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - fd_first
    - fd_second
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: lxc_abstract_unix_send_two_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.h
    functionUses: 3
    functionsReached:
    - __lxc_abstract_unix_send_two_fds
    linkageType: ''
    returnType: int
    signature: "int lxc_abstract_unix_send_two_fds(int fd, int fd_first,\n\t\t\t\t\t\t
      int fd_second)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_abstract_unix_recv_two_fds
      Src: /src/lxc/src/lxc/af_unix.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - fd_first
    - fd_second
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: lxc_abstract_unix_recv_two_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.h
    functionUses: 4
    functionsReached:
    - __lxc_abstract_unix_recv_two_fds
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_abstract_unix_recv_two_fds(int fd, int *fd_first, int *fd_second)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR_OR_NULL
      Src: /src/lxc/src/lxc/af_unix.h:164,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/af_unix.h:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fds
    argTypes:
    - struct unix_fds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: put_unix_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.h
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - IS_ERR_OR_NULL
    linkageType: ''
    returnType: void
    signature: void put_unix_fds(struct unix_fds *fds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: ptr_to_u64
    functionSourceFile: /src/lxc/src/lxc/process_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptr_to_u64(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: u64_to_ptr
    functionSourceFile: /src/lxc/src/lxc/process_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: u64_to_ptr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - args
    - size
    argTypes:
    - struct clone_args*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: lxc_clone3
    functionSourceFile: /src/lxc/src/lxc/process_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: __returns_twice
    signature: __returns_twice lxc_clone3(struct clone_args *args, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dirfd
    - pathname
    - argv
    - envp
    - flags
    argTypes:
    - int
    - char*
    - char*[]
    - char*[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: execveat
    functionSourceFile: /src/lxc/src/lxc/process_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int execveat(int dirfd, const char *pathname, char *const argv[],\n\t\t\t
      \  char *const envp[], int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: lxc_raw_getpid
    functionSourceFile: /src/lxc/src/lxc/process_utils.h
    functionUses: 3
    functionsReached:
    - syscall
    linkageType: ''
    returnType: pid_t
    signature: pid_t lxc_raw_getpid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.h:288,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/process_utils.h:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 292
    functionName: lxc_raw_gettid
    functionSourceFile: /src/lxc/src/lxc/process_utils.h
    functionUses: 0
    functionsReached:
    - syscall
    - lxc_raw_getpid
    linkageType: ''
    returnType: pid_t
    signature: pid_t lxc_raw_gettid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigdescr_np
      Src: /src/lxc/src/lxc/process_utils.h:302,1
    - Dst: strsignal
      Src: /src/lxc/src/lxc/process_utils.h:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 311
    functionName: signal_name
    functionSourceFile: /src/lxc/src/lxc/process_utils.h
    functionUses: 1
    functionsReached:
    - strsignal
    - sigdescr_np
    linkageType: ''
    returnType: char
    signature: char *signal_name(int sig)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/sync.c:23,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/sync.c:25,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/sync.c:31,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/sync.c:34,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/sync.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - fd
    - sequence
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 40
    functionName: sync_wait
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - log_error
    - log_error_errno
    - lxc_read_nointr
    linkageType: ''
    returnType: bool
    signature: bool sync_wait(int fd, int sequence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/sync.c:46,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/sync.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - sequence
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: sync_wake
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - lxc_write_nointr
    linkageType: ''
    returnType: bool
    signature: bool sync_wake(int fd, int sequence)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sync_wake
      Src: /src/lxc/src/lxc/sync.c:54,1
    - Dst: sync_wait
      Src: /src/lxc/src/lxc/sync.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - sequence
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: __sync_barrier
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - sync_wait
    - sync_wake
    linkageType: ''
    returnType: bool
    signature: bool __sync_barrier(int fd, int sequence)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: start_sync_to_string
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *start_sync_to_string(int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/sync.c:90,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:91,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:91,1
    - Dst: __sync_barrier
      Src: /src/lxc/src/lxc/sync.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - sequence
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: lxc_sync_barrier_parent
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - TRACE
    - start_sync_to_string
    - __sync_barrier
    linkageType: ''
    returnType: bool
    signature: bool lxc_sync_barrier_parent(struct lxc_handler *handler, int sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/sync.c:97,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:98,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:98,1
    - Dst: __sync_barrier
      Src: /src/lxc/src/lxc/sync.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - sequence
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: lxc_sync_barrier_child
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - TRACE
    - start_sync_to_string
    - __sync_barrier
    linkageType: ''
    returnType: bool
    signature: bool lxc_sync_barrier_child(struct lxc_handler *handler, int sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/sync.c:104,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:104,1
    - Dst: sync_wake
      Src: /src/lxc/src/lxc/sync.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - sequence
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: lxc_sync_wake_parent
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 1
    functionsReached:
    - TRACE
    - start_sync_to_string
    - sync_wake
    linkageType: ''
    returnType: bool
    signature: bool lxc_sync_wake_parent(struct lxc_handler *handler, int sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/sync.c:110,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:110,1
    - Dst: sync_wait
      Src: /src/lxc/src/lxc/sync.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - sequence
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: lxc_sync_wait_parent
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - sync_wait
    - TRACE
    - start_sync_to_string
    linkageType: ''
    returnType: bool
    signature: bool lxc_sync_wait_parent(struct lxc_handler *handler, int sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/sync.c:116,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:116,1
    - Dst: sync_wait
      Src: /src/lxc/src/lxc/sync.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - sequence
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: lxc_sync_wait_child
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - sync_wait
    - TRACE
    - start_sync_to_string
    linkageType: ''
    returnType: bool
    signature: bool lxc_sync_wait_child(struct lxc_handler *handler, int sequence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/sync.c:122,1
    - Dst: start_sync_to_string
      Src: /src/lxc/src/lxc/sync.c:122,1
    - Dst: sync_wake
      Src: /src/lxc/src/lxc/sync.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - sequence
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: lxc_sync_wake_child
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - TRACE
    - start_sync_to_string
    - sync_wake
    linkageType: ''
    returnType: bool
    signature: bool lxc_sync_wake_child(struct lxc_handler *handler, int sequence)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socketpair
      Src: /src/lxc/src/lxc/sync.c:130,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/sync.c:132,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/sync.c:135,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/sync.c:137,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/sync.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: lxc_sync_init
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - socketpair
    - TRACE
    - fcntl
    - log_error_errno
    linkageType: ''
    returnType: bool
    signature: bool lxc_sync_init(struct lxc_handler *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/sync.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: lxc_sync_fini_child
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_sync_fini_child(struct lxc_handler *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/sync.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: lxc_sync_fini_parent
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_sync_fini_parent(struct lxc_handler *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_sync_fini_child
      Src: /src/lxc/src/lxc/sync.c:155,1
    - Dst: lxc_sync_fini_parent
      Src: /src/lxc/src/lxc/sync.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: lxc_sync_fini
    functionSourceFile: /src/lxc/src/lxc/sync.c
    functionUses: 0
    functionsReached:
    - lxc_sync_fini_parent
    - lxc_sync_fini_child
    linkageType: ''
    returnType: void
    signature: void lxc_sync_fini(struct lxc_handler *handler)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/attach.c:112,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/attach.c:112,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:116,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/attach.c:118,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/attach.c:118,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/attach.c:118,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:120,1
    - Dst: fdopen_at
      Src: /src/lxc/src/lxc/attach.c:122,1
    - Dst: getline
      Src: /src/lxc/src/lxc/attach.c:126,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/attach.c:128,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/attach.c:132,1
    - Dst: lxc_trim_whitespace_in_place
      Src: /src/lxc/src/lxc/attach.c:136,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/attach.c:138,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - dfd_init_pid
    - pidfd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 146
    functionName: pidfd_get_pid
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - ret_errno
    - INTTYPE_TO_STRLEN
    - STRLITERALLEN
    - lxc_safe_int
    - strnequal
    - fdopen_at
    - lxc_trim_whitespace_in_place
    - getline
    linkageType: ''
    returnType: pid_t
    signature: pid_t pidfd_get_pid(int dfd_init_pid, int pidfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/attach.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - pid
    argTypes:
    - int
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: sync_wake_pid
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - lxc_write_nointr
    linkageType: ''
    returnType: bool
    signature: bool sync_wake_pid(int fd, pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/attach.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - pid
    argTypes:
    - int
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: sync_wait_pid
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - lxc_read_nointr
    linkageType: ''
    returnType: bool
    signature: bool sync_wait_pid(int fd, pid_t *pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/attach.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - fd_send
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: sync_wake_fd
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_send_fds
    linkageType: ''
    returnType: bool
    signature: bool sync_wake_fd(int fd, int fd_send)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_recv_one_fd
      Src: /src/lxc/src/lxc/attach.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - fd_recv
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: sync_wait_fd
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_recv_one_fd
    linkageType: ''
    returnType: bool
    signature: bool sync_wait_fd(int fd, int *fd_recv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - options
    argTypes:
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: attach_lsm
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool attach_lsm(lxc_attach_options_t *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/attach.c:177,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/attach.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: alloc_attach_context
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - zalloc
    - ret_set_errno
    linkageType: ''
    returnType: struct attach_context
    signature: struct attach_context *alloc_attach_context(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_config_item
      Src: /src/lxc/src/lxc/attach.c:209,1
    - Dst: lxc_config_parse_arch
      Src: /src/lxc/src/lxc/attach.c:215,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - name
    - lxcpath
    - personality
    argTypes:
    - char*
    - char*
    - personality_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: get_personality
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - lxc_config_parse_arch
    - lxc_cmd_get_config_item
    linkageType: ''
    returnType: int
    signature: "int get_personality(const char *name, const char *lxcpath,\n\t\t\t
      \  personality_t *personality)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fdopen_at
      Src: /src/lxc/src/lxc/attach.c:237,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:239,1
    - Dst: getline
      Src: /src/lxc/src/lxc/attach.c:241,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/attach.c:242,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:247,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:253,1
    - Dst: fdopen_at
      Src: /src/lxc/src/lxc/attach.c:257,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:259,1
    - Dst: getline
      Src: /src/lxc/src/lxc/attach.c:261,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/attach.c:262,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:267,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:273,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 40
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 284
    functionName: userns_setup_ids
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - fdopen_at
    - TRACE
    - sscanf
    - getline
    linkageType: ''
    returnType: int
    signature: "int userns_setup_ids(struct attach_context *ctx,\n\t\t\t    lxc_attach_options_t
      *options)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:296,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 307
    functionName: userns_target_ids
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: void
    signature: void userns_target_ids(struct attach_context *ctx, lxc_attach_options_t
      *options)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdopen_at
      Src: /src/lxc/src/lxc/attach.c:317,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:319,1
    - Dst: getline
      Src: /src/lxc/src/lxc/attach.c:321,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/attach.c:328,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:331,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/attach.c:335,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:338,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/attach.c:342,1
    - Dst: userns_setup_ids
      Src: /src/lxc/src/lxc/attach.c:356,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/attach.c:358,1
    - Dst: userns_target_ids
      Src: /src/lxc/src/lxc/attach.c:359,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 362
    functionName: parse_init_status
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - fdopen_at
    - TRACE
    - sscanf
    - getline
    - syserror_ret
    - userns_target_ids
    - userns_setup_ids
    linkageType: ''
    returnType: int
    signature: int parse_init_status(struct attach_context *ctx, lxc_attach_options_t
      *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setns
      Src: /src/lxc/src/lxc/attach.c:375,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct attach_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 381
    functionName: pidfd_setns_supported
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - TRACE
    - setns
    linkageType: ''
    returnType: bool
    signature: bool pidfd_setns_supported(struct attach_context *ctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/attach.c:394,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:398,1
    - Dst: lxc_cmd_get_init_pidfd
      Src: /src/lxc/src/lxc/attach.c:400,1
    - Dst: pidfd_get_pid
      Src: /src/lxc/src/lxc/attach.c:402,1
    - Dst: lxc_cmd_get_init_pid
      Src: /src/lxc/src/lxc/attach.c:404,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/attach.c:406,1
    - Dst: lxc_cmd_get_clone_flags
      Src: /src/lxc/src/lxc/attach.c:408,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:410,1
    - Dst: core_scheduling_cookie_get
      Src: /src/lxc/src/lxc/attach.c:413,1
    - Dst: core_scheduling_cookie_valid
      Src: /src/lxc/src/lxc/attach.c:414,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/attach.c:415,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/attach.c:417,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/attach.c:420,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:422,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/attach.c:424,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:428,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/attach.c:431,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:433,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:435,1
    - Dst: pidfd_setns_supported
      Src: /src/lxc/src/lxc/attach.c:437,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:439,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:440,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:443,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/attach.c:451,1
    - Dst: cgns_supported
      Src: /src/lxc/src/lxc/attach.c:456,1
    - Dst: parse_init_status
      Src: /src/lxc/src/lxc/attach.c:466,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:468,1
    - Dst: lsm_init_static
      Src: /src/lxc/src/lxc/attach.c:470,1
    - Dst: attach_lsm
      Src: /src/lxc/src/lxc/attach.c:472,1
    - Dst: struct attach_context*::lsm_ops::process_label_get_at
      Src: /src/lxc/src/lxc/attach.c:476,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:478,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/attach.c:480,1
    - Dst: get_personality
      Src: /src/lxc/src/lxc/attach.c:483,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/attach.c:485,1
    - Dst: lxc_conf_init
      Src: /src/lxc/src/lxc/attach.c:488,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/attach.c:490,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/attach.c:493,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 3
    argNames:
    - ctx
    - container
    - options
    argTypes:
    - struct attach_context*
    - struct lxc_container*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 495
    functionName: get_attach_context
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - syserror_set
    - lxc_cmd_get_clone_flags
    - close
    - core_scheduling_cookie_get
    - open_at
    - struct attach_context*::lsm_ops::process_label_get_at
    - get_personality
    - parse_init_status
    - lxc_cmd_get_init_pid
    - lxc_raw_pidfd_send_signal
    - cgns_supported
    - lsm_init_static
    - WARN
    - move_ptr
    - SYSERROR
    - TRACE
    - syserror_ret
    - core_scheduling_cookie_valid
    - lxc_cmd_get_init_pidfd
    - strnprintf
    - ret_errno
    - pidfd_get_pid
    - lxc_conf_init
    - pidfd_setns_supported
    - INFO
    - attach_lsm
    linkageType: ''
    returnType: int
    signature: "int get_attach_context(struct attach_context *ctx,\n\t\t\t      struct
      lxc_container *container,\n\t\t\t      lxc_attach_options_t *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fstatat
      Src: /src/lxc/src/lxc/attach.c:502,1
    - Dst: fstatat
      Src: /src/lxc/src/lxc/attach.c:506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - dfd_pid1
    - dfd_pid2
    - ns_path
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: same_nsfd
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - fstatat
    linkageType: ''
    returnType: int
    signature: int same_nsfd(int dfd_pid1, int dfd_pid2, const char *ns_path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/attach.c:523,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:529,1
    - Dst: same_nsfd
      Src: /src/lxc/src/lxc/attach.c:532,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:537,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/attach.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - dfd_pid1
    - dfd_pid2
    - ns_path
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 544
    functionName: same_ns
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - same_nsfd
    - ret_errno
    - open_at
    - move_fd
    linkageType: ''
    returnType: int
    signature: int same_ns(int dfd_pid1, int dfd_pid2, const char *ns_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: same_nsfd
      Src: /src/lxc/src/lxc/attach.c:551,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:559,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:562,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct attach_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 571
    functionName: __prepare_namespaces_pidfd
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - TRACE
    - same_nsfd
    linkageType: ''
    returnType: int
    signature: int __prepare_namespaces_pidfd(struct attach_context *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/attach.c:580,1
    - Dst: same_ns
      Src: /src/lxc/src/lxc/attach.c:587,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:602,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:609,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:611,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 615
    functionName: __prepare_namespaces_nsfd
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - same_ns
    - ret_errno
    - SYSERROR
    - open_at
    linkageType: ''
    returnType: int
    signature: "int __prepare_namespaces_nsfd(struct attach_context *ctx,\n\t\t\t\t
      \    lxc_attach_options_t *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __prepare_namespaces_nsfd
      Src: /src/lxc/src/lxc/attach.c:621,1
    - Dst: __prepare_namespaces_pidfd
      Src: /src/lxc/src/lxc/attach.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: prepare_namespaces
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - __prepare_namespaces_pidfd
    - __prepare_namespaces_nsfd
    linkageType: ''
    returnType: int
    signature: "int prepare_namespaces(struct attach_context *ctx,\n\t\t\t      lxc_attach_options_t
      *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct attach_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: put_namespaces
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void put_namespaces(struct attach_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setns
      Src: /src/lxc/src/lxc/attach.c:641,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:643,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:646,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:647,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/attach.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 651
    functionName: __attach_namespaces_pidfd
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - setns
    - close
    - log_trace
    linkageType: ''
    returnType: int
    signature: "int __attach_namespaces_pidfd(struct attach_context *ctx,\n\t\t\t\t
      \    lxc_attach_options_t *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setns
      Src: /src/lxc/src/lxc/attach.c:664,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:666,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:669,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 678
    functionName: __attach_namespaces_nsfd
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - SYSERROR
    - setns
    - close
    linkageType: ''
    returnType: int
    signature: "int __attach_namespaces_nsfd(struct attach_context *ctx,\n\t\t\t\t
      \   lxc_attach_options_t *options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/attach.c:683,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:686,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:690,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:693,1
    - Dst: __attach_namespaces_nsfd
      Src: /src/lxc/src/lxc/attach.c:698,1
    - Dst: __attach_namespaces_pidfd
      Src: /src/lxc/src/lxc/attach.c:700,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - ctx
    - options
    argTypes:
    - struct attach_context*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 701
    functionName: attach_namespaces
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - TRACE
    - __attach_namespaces_pidfd
    - lxc_log_trace
    - __attach_namespaces_nsfd
    linkageType: ''
    returnType: int
    signature: "int attach_namespaces(struct attach_context *ctx,\n\t\t\t     lxc_attach_options_t
      *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/attach.c:707,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:708,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/attach.c:711,1
    - Dst: put_namespaces
      Src: /src/lxc/src/lxc/attach.c:715,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct attach_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 718
    functionName: put_attach_context
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - free
    - lxc_container_put
    - put_namespaces
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void put_attach_context(struct attach_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:727,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct attach_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 737
    functionName: attach_context_security_barrier
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: bool
    signature: bool attach_context_security_barrier(struct attach_context *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unshare
      Src: /src/lxc/src/lxc/attach.c:743,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:745,1
    - Dst: detect_shared_rootfs
      Src: /src/lxc/src/lxc/attach.c:747,1
    - Dst: mount
      Src: /src/lxc/src/lxc/attach.c:747,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:748,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/attach.c:751,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:753,1
    - Dst: mount
      Src: /src/lxc/src/lxc/attach.c:755,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:757,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/attach.c:763,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:765,1
    - Dst: mount
      Src: /src/lxc/src/lxc/attach.c:768,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:769,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 772
    functionName: lxc_attach_remount_sys_proc
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 1
    functionsReached:
    - syserror
    - umount2
    - unshare
    - SYSERROR
    - detect_shared_rootfs
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_attach_remount_sys_proc(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_caps_last_cap
      Src: /src/lxc/src/lxc/attach.c:779,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/attach.c:781,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/attach.c:787,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:787,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:787,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:788,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:788,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:789,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct attach_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 795
    functionName: drop_capabilities
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - prctl_arg
    - prctl
    - TRACE
    - lxc_caps_last_cap
    - syserror_ret
    linkageType: ''
    returnType: int
    signature: int drop_capabilities(struct attach_context *ctx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/attach.c:813,1
    - Dst: getenv
      Src: /src/lxc/src/lxc/attach.c:818,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/attach.c:820,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:823,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:825,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/attach.c:829,1
    - Dst: clearenv
      Src: /src/lxc/src/lxc/attach.c:835,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:840,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:842,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:845,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/attach.c:853,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/attach.c:855,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:858,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:861,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/attach.c:870,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/attach.c:872,1
    - Dst: putenv
      Src: /src/lxc/src/lxc/attach.c:876,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/attach.c:878,1
    - Dst: lxc_set_environment
      Src: /src/lxc/src/lxc/attach.c:882,1
    - Dst: lxc_set_environment
      Src: /src/lxc/src/lxc/attach.c:886,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/attach.c:899,1
    - Dst: putenv
      Src: /src/lxc/src/lxc/attach.c:903,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/attach.c:905,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 4
    argNames:
    - ctx
    - policy
    - extra_env
    - extra_keep
    argTypes:
    - struct attach_context*
    - enum lxc_attach_env_policy_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 910
    functionName: lxc_attach_set_environment
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - log_warn
    - setenv
    - strequal
    - free
    - putenv
    - getenv
    - SYSWARN
    - lxc_set_environment
    - clearenv
    - zalloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int lxc_attach_set_environment(struct attach_context *ctx,\n\t\t\t\t
      \     enum lxc_attach_env_policy_t policy,\n\t\t\t\t      char **extra_env,
      char **extra_keep)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/lxc/src/lxc/attach.c:925,1
    - Dst: fork
      Src: /src/lxc/src/lxc/attach.c:929,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:931,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:932,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:945,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/attach.c:948,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:949,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:951,1
    - Dst: open_devnull
      Src: /src/lxc/src/lxc/attach.c:956,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:958,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:959,1
    - Dst: dup3
      Src: /src/lxc/src/lxc/attach.c:961,1
    - Dst: dup3
      Src: /src/lxc/src/lxc/attach.c:962,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:963,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/attach.c:967,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:969,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/attach.c:972,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:973,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:976,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/attach.c:978,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:980,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/attach.c:984,1
    - Dst: getline
      Src: /src/lxc/src/lxc/attach.c:986,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/attach.c:1003,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/attach.c:1007,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/attach.c:1012,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/attach.c:1017,1
    - Dst: strtol
      Src: /src/lxc/src/lxc/attach.c:1018,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/attach.c:1029,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/attach.c:1037,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/attach.c:1038,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/attach.c:1041,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/attach.c:1049,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/attach.c:1056,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 80
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 1057
    functionName: lxc_attach_getpwshell
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close
    - wait_for_pid
    - fdopen
    - strtok_r
    - strlen
    - move_fd
    - dup2
    - move_ptr
    - open_devnull
    - dup3
    - strnprintf
    - strtol
    - pipe2
    - _exit
    - getline
    - free_disarm
    - execvp
    - fork
    - strdup
    linkageType: ''
    returnType: char
    signature: char *lxc_attach_getpwshell(uid_t uid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: attach_lsm
      Src: /src/lxc/src/lxc/attach.c:1065,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/attach.c:1066,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/attach.c:1071,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/attach.c:1072,1
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/attach.c:1076,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/attach.c:1078,1
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/attach.c:1080,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/attach.c:1082,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/attach.c:1086,1
    - Dst: lxc_read_seccomp_config
      Src: /src/lxc/src/lxc/attach.c:1091,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/attach.c:1093,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/attach.c:1095,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - c
    - options
    argTypes:
    - struct lxc_container*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1096
    functionName: fetch_seccomp
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::get_running_config_item
    - log_info
    - struct lxc_container*::set_config_item
    - lxc_read_seccomp_config
    - log_error
    - INFO
    - free_disarm
    - attach_lsm
    linkageType: ''
    returnType: bool
    signature: bool fetch_seccomp(struct lxc_container *c, lxc_attach_options_t *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/attach.c:1103,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/attach.c:1104,1
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/attach.c:1107,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/attach.c:1109,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/attach.c:1112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - options
    argTypes:
    - struct lxc_container*
    - lxc_attach_options_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1113
    functionName: no_new_privs
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::set_config_item
    - struct lxc_container*::get_running_config_item
    - log_info
    linkageType: ''
    returnType: bool
    signature: bool no_new_privs(struct lxc_container *c, lxc_attach_options_t *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1127,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1128,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct attach_payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1124
    functionDepth: 4
    functionLinenumber: 1124
    functionLinenumberEnd: 1132
    functionName: put_attach_payload
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - put_attach_context
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void put_attach_payload(struct attach_payload *p)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/attach.c:1136,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/attach.c:1137,1
    - Dst: core_scheduling_cookie_valid
      Src: /src/lxc/src/lxc/attach.c:1151,1
    - Dst: core_scheduling_cookie_share_with
      Src: /src/lxc/src/lxc/attach.c:1156,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1158,1
    - Dst: core_scheduling_cookie_get
      Src: /src/lxc/src/lxc/attach.c:1163,1
    - Dst: getpid
      Src: /src/lxc/src/lxc/attach.c:1163,1
    - Dst: core_scheduling_cookie_valid
      Src: /src/lxc/src/lxc/attach.c:1164,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1166,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/attach.c:1172,1
    - Dst: lxc_attach_remount_sys_proc
      Src: /src/lxc/src/lxc/attach.c:1183,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1187,1
    - Dst: lxc_personality
      Src: /src/lxc/src/lxc/attach.c:1200,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1204,1
    - Dst: drop_capabilities
      Src: /src/lxc/src/lxc/attach.c:1209,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1213,1
    - Dst: lxc_attach_set_environment
      Src: /src/lxc/src/lxc/attach.c:1219,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1226,1
    - Dst: attach_lsm
      Src: /src/lxc/src/lxc/attach.c:1240,1
    - Dst: sync_wait_fd
      Src: /src/lxc/src/lxc/attach.c:1241,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1242,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1246,1
    - Dst: isatty
      Src: /src/lxc/src/lxc/attach.c:1249,1
    - Dst: lxc_make_controlling_terminal
      Src: /src/lxc/src/lxc/attach.c:1250,1
    - Dst: lxc_setgroups
      Src: /src/lxc/src/lxc/attach.c:1257,1
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/attach.c:1260,1
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/attach.c:1265,1
    - Dst: attach_lsm
      Src: /src/lxc/src/lxc/attach.c:1268,1
    - Dst: struct attach_context*::lsm_ops::process_label_set_at
      Src: /src/lxc/src/lxc/attach.c:1273,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1274,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1278,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/attach.c:1282,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:1282,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:1282,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:1283,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/attach.c:1283,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1287,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/attach.c:1300,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/attach.c:1301,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/attach.c:1304,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/attach.c:1305,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/attach.c:1308,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/attach.c:1309,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:1313,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:1316,1
    - Dst: close
      Src: /src/lxc/src/lxc/attach.c:1319,1
    - Dst: lxc_fd_cloexec
      Src: /src/lxc/src/lxc/attach.c:1326,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1328,1
    - Dst: lxc_terminal_prepare_login
      Src: /src/lxc/src/lxc/attach.c:1334,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1336,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1340,1
    - Dst: fix_stdio_permissions
      Src: /src/lxc/src/lxc/attach.c:1354,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/attach.c:1356,1
    - Dst: lxc_seccomp_load
      Src: /src/lxc/src/lxc/attach.c:1359,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1363,1
    - Dst: lxc_seccomp_send_notifier_fd
      Src: /src/lxc/src/lxc/attach.c:1365,1
    - Dst: lxc_seccomp_close_notifier_fd
      Src: /src/lxc/src/lxc/attach.c:1368,1
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/attach.c:1371,1
    - Dst: put_attach_payload
      Src: /src/lxc/src/lxc/attach.c:1374,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1377,1
    - Dst: attach_function
      Src: /src/lxc/src/lxc/attach.c:1377,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/attach.c:1380,1
    - Dst: put_attach_payload
      Src: /src/lxc/src/lxc/attach.c:1381,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1382,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 151
    argCount: 1
    argNames:
    - ap
    argTypes:
    - struct attach_payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1134
    functionDepth: 5
    functionLinenumber: 1134
    functionLinenumberEnd: 1383
    functionName: do_attach
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - attach_function
    - close
    - lxc_personality
    - lxc_switch_uid_gid
    - lxc_fd_cloexec
    - core_scheduling_cookie_get
    - sync_wait_fd
    - struct attach_context*::lsm_ops::process_label_set_at
    - lxc_setgroups
    - close_prot_errno_disarm
    - fix_stdio_permissions
    - lxc_seccomp_send_notifier_fd
    - dup2
    - put_attach_payload
    - lxc_terminal_prepare_login
    - move_ptr
    - SYSERROR
    - prctl
    - core_scheduling_cookie_share_with
    - TRACE
    - core_scheduling_cookie_valid
    - getpid
    - lxc_attach_remount_sys_proc
    - SYSDEBUG
    - lxc_seccomp_close_notifier_fd
    - lxc_make_controlling_terminal
    - lxc_seccomp_load
    - prctl_arg
    - lxc_drop_groups
    - drop_capabilities
    - isatty
    - INFO
    - lxc_attach_set_environment
    - _exit
    - attach_lsm
    - ERROR
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn do_attach(struct attach_payload *ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_init
      Src: /src/lxc/src/lxc/attach.c:1390,1
    - Dst: lxc_terminal_create
      Src: /src/lxc/src/lxc/attach.c:1392,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - name
    - lxcpath
    - conf
    - terminal
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1397
    functionName: lxc_attach_terminal
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - lxc_terminal_create
    - lxc_terminal_init
    linkageType: ''
    returnType: int
    signature: "int lxc_attach_terminal(const char *name, const char *lxcpath, struct
      lxc_conf *conf,\n\t\t\t       struct lxc_terminal *terminal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/attach.c:1404,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1406,1
    - Dst: lxc_terminal_mainloop_add
      Src: /src/lxc/src/lxc/attach.c:1408,1
    - Dst: lxc_mainloop_close
      Src: /src/lxc/src/lxc/attach.c:1410,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - terminal
    - descr
    argTypes:
    - struct lxc_terminal*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1399
    functionDepth: 3
    functionLinenumber: 1399
    functionLinenumberEnd: 1415
    functionName: lxc_attach_terminal_mainloop_init
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - syserror
    - lxc_terminal_mainloop_add
    - lxc_mainloop_close
    - lxc_mainloop_open
    linkageType: ''
    returnType: int
    signature: "int lxc_attach_terminal_mainloop_init(struct lxc_terminal *terminal,\n\t\t\t\t\t
      \    struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1420
    functionName: lxc_attach_terminal_close_ptx
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_attach_terminal_close_ptx(struct lxc_terminal *terminal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1422
    functionDepth: 1
    functionLinenumber: 1422
    functionLinenumberEnd: 1425
    functionName: lxc_attach_terminal_close_pts
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_attach_terminal_close_pts(struct lxc_terminal *terminal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1430
    functionName: lxc_attach_terminal_close_peer
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_attach_terminal_close_peer(struct lxc_terminal *terminal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1435
    functionName: lxc_attach_terminal_close_log
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_attach_terminal_close_log(struct lxc_terminal *terminal)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:1452,1
    - Dst: lxc_container_get
      Src: /src/lxc/src/lxc/attach.c:1454,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/attach.c:1455,1
    - Dst: alloc_attach_context
      Src: /src/lxc/src/lxc/attach.c:1465,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/attach.c:1467,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/attach.c:1468,1
    - Dst: get_attach_context
      Src: /src/lxc/src/lxc/attach.c:1471,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1473,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1474,1
    - Dst: fetch_seccomp
      Src: /src/lxc/src/lxc/attach.c:1479,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:1480,1
    - Dst: no_new_privs
      Src: /src/lxc/src/lxc/attach.c:1482,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:1483,1
    - Dst: prepare_namespaces
      Src: /src/lxc/src/lxc/attach.c:1485,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1487,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1488,1
    - Dst: lxc_attach_terminal
      Src: /src/lxc/src/lxc/attach.c:1492,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1494,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1495,1
    - Dst: lxc_terminal_init
      Src: /src/lxc/src/lxc/attach.c:1500,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/attach.c:1536,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1538,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1539,1
    - Dst: fork
      Src: /src/lxc/src/lxc/attach.c:1549,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1551,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/attach.c:1552,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1559,1
    - Dst: lxc_attach_terminal_close_ptx
      Src: /src/lxc/src/lxc/attach.c:1562,1
    - Dst: lxc_attach_terminal_close_peer
      Src: /src/lxc/src/lxc/attach.c:1563,1
    - Dst: lxc_attach_terminal_close_log
      Src: /src/lxc/src/lxc/attach.c:1564,1
    - Dst: sync_wait
      Src: /src/lxc/src/lxc/attach.c:1568,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/attach.c:1569,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1570,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1571,1
    - Dst: attach_context_security_barrier
      Src: /src/lxc/src/lxc/attach.c:1574,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/attach.c:1575,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1576,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1577,1
    - Dst: getcwd
      Src: /src/lxc/src/lxc/attach.c:1580,1
    - Dst: attach_namespaces
      Src: /src/lxc/src/lxc/attach.c:1592,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/attach.c:1594,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/attach.c:1595,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1596,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1597,1
    - Dst: chdir
      Src: /src/lxc/src/lxc/attach.c:1606,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:1608,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/attach.c:1610,1
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/lxc/attach.c:1613,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1615,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/attach.c:1616,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1617,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1618,1
    - Dst: lxc_terminal_signal_sigmask_safe_blocked
      Src: /src/lxc/src/lxc/attach.c:1632,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1634,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1635,1
    - Dst: do_attach
      Src: /src/lxc/src/lxc/attach.c:1640,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1642,1
    - Dst: lxc_attach_terminal_close_pts
      Src: /src/lxc/src/lxc/attach.c:1645,1
    - Dst: sync_wake_pid
      Src: /src/lxc/src/lxc/attach.c:1648,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/attach.c:1655,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1656,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1657,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1661,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/attach.c:1662,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1664,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1669,1
    - Dst: put_namespaces
      Src: /src/lxc/src/lxc/attach.c:1670,1
    - Dst: lxc_attach_terminal_close_pts
      Src: /src/lxc/src/lxc/attach.c:1672,1
    - Dst: cgroup_attach
      Src: /src/lxc/src/lxc/attach.c:1680,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/attach.c:1682,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/attach.c:1683,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1684,1
    - Dst: cgroup_init
      Src: /src/lxc/src/lxc/attach.c:1688,1
    - Dst: struct cgroup_ops*::attach
      Src: /src/lxc/src/lxc/attach.c:1692,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1696,1
    - Dst: attach_context_security_barrier
      Src: /src/lxc/src/lxc/attach.c:1703,1
    - Dst: setup_proc_filesystem
      Src: /src/lxc/src/lxc/attach.c:1707,1
    - Dst: setup_resource_limits
      Src: /src/lxc/src/lxc/attach.c:1712,1
    - Dst: lxc_attach_terminal_mainloop_init
      Src: /src/lxc/src/lxc/attach.c:1717,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1721,1
    - Dst: sync_wake
      Src: /src/lxc/src/lxc/attach.c:1725,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1728,1
    - Dst: sync_wait_pid
      Src: /src/lxc/src/lxc/attach.c:1731,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1734,1
    - Dst: signal
      Src: /src/lxc/src/lxc/attach.c:1738,1
    - Dst: signal
      Src: /src/lxc/src/lxc/attach.c:1739,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/attach.c:1743,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1747,1
    - Dst: attach_lsm
      Src: /src/lxc/src/lxc/attach.c:1753,1
    - Dst: struct attach_context*::lsm_ops::process_label_fd_get
      Src: /src/lxc/src/lxc/attach.c:1758,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1762,1
    - Dst: sync_wake_fd
      Src: /src/lxc/src/lxc/attach.c:1765,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1766,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/attach.c:1770,1
    - Dst: lxc_seccomp_recv_notifier_fd
      Src: /src/lxc/src/lxc/attach.c:1774,1
    - Dst: lxc_seccomp_add_notifier
      Src: /src/lxc/src/lxc/attach.c:1778,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/attach.c:1791,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1792,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/attach.c:1798,1
    - Dst: lxc_mainloop_close
      Src: /src/lxc/src/lxc/attach.c:1807,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/attach.c:1811,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/attach.c:1812,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/attach.c:1816,1
    - Dst: lxc_terminal_delete
      Src: /src/lxc/src/lxc/attach.c:1819,1
    - Dst: lxc_terminal_conf_free
      Src: /src/lxc/src/lxc/attach.c:1820,1
    - Dst: put_attach_context
      Src: /src/lxc/src/lxc/attach.c:1823,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 228
    argCount: 5
    argNames:
    - container
    - exec_function
    - exec_payload
    - options
    - attached_process
    argTypes:
    - struct lxc_container*
    - lxc_attach_exec_t
    - void*
    - lxc_attach_options_t*
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1437
    functionDepth: 6
    functionLinenumber: 1437
    functionLinenumberEnd: 1825
    functionName: lxc_attach
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 2
    functionsReached:
    - syserror
    - lxc_attach_terminal_close_peer
    - lxc_attach_terminal_close_pts
    - syserror_set
    - alloc_attach_context
    - lxc_attach_terminal_close_log
    - lxc_terminal_init
    - chdir
    - lxc_terminal_delete
    - lxc_mainloop
    - wait_for_pid
    - lxc_seccomp_recv_notifier_fd
    - ERROR
    - lxc_container_get
    - lxc_attach_terminal
    - setup_resource_limits
    - close_prot_errno_disarm
    - lxc_attach_terminal_close_ptx
    - fetch_seccomp
    - socketpair
    - sync_wait_pid
    - call_cleaner
    - prepare_namespaces
    - struct cgroup_ops*::attach
    - lxc_seccomp_add_notifier
    - cgroup_attach
    - struct attach_context*::lsm_ops::process_label_fd_get
    - put_attach_context
    - do_attach
    - WARN
    - attach_namespaces
    - setup_proc_filesystem
    - lxc_raw_clone
    - sync_wake_fd
    - shutdown
    - SYSERROR
    - lxc_mainloop_close
    - TRACE
    - getcwd
    - put_namespaces
    - signal
    - attach_context_security_barrier
    - lxc_terminal_signal_sigmask_safe_blocked
    - attach_lsm
    - ret_errno
    - sync_wait
    - lxc_attach_terminal_mainloop_init
    - sync_wake_pid
    - lxc_container_put
    - _exit
    - sync_wake
    - free_disarm
    - lxc_terminal_conf_free
    - get_attach_context
    - cgroup_init
    - fork
    - no_new_privs
    - ERRNO_IS_NOT_SUPPORTED
    linkageType: ''
    returnType: int
    signature: "int lxc_attach(struct lxc_container *container, lxc_attach_exec_t
      exec_function,\n\t       void *exec_payload, lxc_attach_options_t *options,\n\t
      \      pid_t *attached_process)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: execvp
      Src: /src/lxc/src/lxc/attach.c:1832,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/attach.c:1845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1846
    functionName: lxc_attach_run_command
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - execvp
    - syserror_ret
    linkageType: ''
    returnType: int
    signature: int lxc_attach_run_command(void *payload)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/lxc/src/lxc/attach.c:1861,1
    - Dst: sysconf
      Src: /src/lxc/src/lxc/attach.c:1863,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/attach.c:1867,1
    - Dst: getpwuid_r
      Src: /src/lxc/src/lxc/attach.c:1869,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:1872,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/attach.c:1874,1
    - Dst: lxc_attach_getpwshell
      Src: /src/lxc/src/lxc/attach.c:1885,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/attach.c:1890,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/attach.c:1895,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/attach.c:1897,1
    - Dst: free
      Src: /src/lxc/src/lxc/attach.c:1899,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - payload
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1848
    functionDepth: 3
    functionLinenumber: 1848
    functionLinenumberEnd: 1902
    functionName: lxc_attach_run_shell
    functionSourceFile: /src/lxc/src/lxc/attach.c
    functionUses: 0
    functionsReached:
    - WARN
    - free
    - getpwuid_r
    - lxc_attach_getpwshell
    - SYSERROR
    - sysconf
    - getuid
    - execlp
    - malloc
    linkageType: ''
    returnType: int
    signature: int lxc_attach_run_shell(void* payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: backtrace
      Src: /src/lxc/src/lxc/lxclock.c:38,1
    - Dst: backtrace_symbols
      Src: /src/lxc/src/lxc/lxclock.c:39,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxclock.c:42,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lxclock.c:45,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxclock.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: dump_stacktrace
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached:
    - backtrace
    - backtrace_symbols
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_stacktrace(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: dump_stacktrace
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dump_stacktrace(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/lxc/src/lxc/lxclock.c:59,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxclock.c:61,1
    - Dst: dump_stacktrace
      Src: /src/lxc/src/lxc/lxclock.c:62,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxclock.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: lock_mutex
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached:
    - _exit
    - dump_stacktrace
    - SYSERROR
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void lock_mutex(pthread_mutex_t *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/lxc/src/lxc/lxclock.c:71,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lxclock.c:73,1
    - Dst: dump_stacktrace
      Src: /src/lxc/src/lxc/lxclock.c:74,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/lxclock.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: unlock_mutex
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached:
    - _exit
    - dump_stacktrace
    - SYSERROR
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void unlock_mutex(pthread_mutex_t *l)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/lxclock.c:92,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxclock.c:92,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxclock.c:92,1
    - Dst: get_rundir
      Src: /src/lxc/src/lxc/lxclock.c:94,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lxclock.c:98,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxclock.c:100,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxclock.c:104,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/lxclock.c:108,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/lxclock.c:112,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxclock.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 117
    functionName: lxclock_name
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - STRLITERALLEN
    - move_ptr
    - strlen
    - lxc_mkdir_p
    - get_rundir
    - malloc
    linkageType: ''
    returnType: char
    signature: char *lxclock_name(const char *p, const char *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/lxclock.c:124,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxclock.c:126,1
    - Dst: sem_init
      Src: /src/lxc/src/lxc/lxclock.c:128,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxclock.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: lxc_new_unnamed_sem
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - move_ptr
    - sem_init
    - malloc
    linkageType: ''
    returnType: sem_t
    signature: sem_t *lxc_new_unnamed_sem(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/lxclock.c:139,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxclock.c:141,1
    - Dst: lxclock_name
      Src: /src/lxc/src/lxc/lxclock.c:145,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxclock.c:147,1
    - Dst: lxc_new_unnamed_sem
      Src: /src/lxc/src/lxc/lxclock.c:151,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxclock.c:153,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lxclock.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - lxcpath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 157
    functionName: lxc_newlock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 3
    functionsReached:
    - ret_set_errno
    - move_ptr
    - lxclock_name
    - lxc_new_unnamed_sem
    - zalloc
    linkageType: ''
    returnType: struct lxc_lock
    signature: struct lxc_lock *lxc_newlock(const char *lxcpath, const char *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sem_wait
      Src: /src/lxc/src/lxc/lxclock.c:167,1
    - Dst: clock_gettime
      Src: /src/lxc/src/lxc/lxclock.c:171,1
    - Dst: sem_timedwait
      Src: /src/lxc/src/lxc/lxclock.c:176,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxclock.c:182,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/lxclock.c:185,1
    - Dst: open
      Src: /src/lxc/src/lxc/lxclock.c:188,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lxclock.c:190,1
    - Dst: memset
      Src: /src/lxc/src/lxc/lxclock.c:193,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/lxclock.c:198,1
    - Dst: flock
      Src: /src/lxc/src/lxc/lxclock.c:200,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxclock.c:203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - l
    - timeout
    argTypes:
    - struct lxc_lock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 207
    functionName: lxclock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 2
    functionsReached:
    - memset
    - fcntl
    - sem_wait
    - log_error
    - ret_set_errno
    - flock
    - clock_gettime
    - sem_timedwait
    - log_error_errno
    - open
    linkageType: ''
    returnType: int
    signature: int lxclock(struct lxc_lock *l, int timeout)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sem_post
      Src: /src/lxc/src/lxc/lxclock.c:219,1
    - Dst: memset
      Src: /src/lxc/src/lxc/lxclock.c:225,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/lxclock.c:230,1
    - Dst: flock
      Src: /src/lxc/src/lxc/lxclock.c:232,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/lxclock.c:234,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/lxclock.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct lxc_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 241
    functionName: lxcunlock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 2
    functionsReached:
    - memset
    - close_prot_errno_disarm
    - fcntl
    - sem_post
    - ret_set_errno
    - flock
    linkageType: ''
    returnType: int
    signature: int lxcunlock(struct lxc_lock *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sem_destroy
      Src: /src/lxc/src/lxc/lxclock.c:258,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/lxclock.c:259,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/lxclock.c:263,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/lxclock.c:264,1
    - Dst: free
      Src: /src/lxc/src/lxc/lxclock.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct lxc_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: lxc_putlock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 3
    functionsReached:
    - free
    - close_prot_errno_disarm
    - sem_destroy
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_putlock(struct lxc_lock *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock_mutex
      Src: /src/lxc/src/lxc/lxclock.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: process_lock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached:
    - lock_mutex
    linkageType: ''
    returnType: void
    signature: void process_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock_mutex
      Src: /src/lxc/src/lxc/lxclock.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: process_unlock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 0
    functionsReached:
    - unlock_mutex
    linkageType: ''
    returnType: void
    signature: void process_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxclock
      Src: /src/lxc/src/lxc/lxclock.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: container_mem_lock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 15
    functionsReached:
    - lxclock
    linkageType: ''
    returnType: int
    signature: int container_mem_lock(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxcunlock
      Src: /src/lxc/src/lxc/lxclock.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: container_mem_unlock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 15
    functionsReached:
    - lxcunlock
    linkageType: ''
    returnType: void
    signature: void container_mem_unlock(struct lxc_container *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxclock
      Src: /src/lxc/src/lxc/lxclock.c:295,1
    - Dst: lxclock
      Src: /src/lxc/src/lxc/lxclock.c:299,1
    - Dst: lxcunlock
      Src: /src/lxc/src/lxc/lxclock.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 306
    functionName: container_disk_lock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 4
    functionsReached:
    - lxcunlock
    - lxclock
    linkageType: ''
    returnType: int
    signature: int container_disk_lock(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxcunlock
      Src: /src/lxc/src/lxc/lxclock.c:310,1
    - Dst: lxcunlock
      Src: /src/lxc/src/lxc/lxclock.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: container_disk_unlock
    functionSourceFile: /src/lxc/src/lxc/lxclock.c
    functionUses: 4
    functionsReached:
    - lxcunlock
    linkageType: ''
    returnType: void
    signature: void container_disk_unlock(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mode
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: __S_ISTYPE
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __S_ISTYPE(mode, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: INTTYPE_TO_STRLEN
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTTYPE_TO_STRLEN(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: BUILD_BUG_ON
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON(condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: BUILD_BUG_ON
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON(condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: prctl_arg
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prctl_arg(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 657
    functionName: PTR_TO_INT
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_INT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 658
    functionName: INT_TO_PTR
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TO_PTR(u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 660
    functionName: PTR_TO_PID
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_PID(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 661
    functionName: PID_TO_PTR
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PID_TO_PTR(u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 663
    functionName: PTR_TO_UINT64
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_UINT64(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 664
    functionName: PTR_TO_U64
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_U64(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: UINT_TO_PTR
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT_TO_PTR(u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 667
    functionName: PTR_TO_USHORT
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_TO_USHORT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 672
    functionName: STRLITERALLEN
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRLITERALLEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 673
    functionName: STRARRAYLEN
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRARRAYLEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 683
    functionName: move_ptr
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: move_ptr(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: move_fd
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: move_fd(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __ret__
    - ','
    - __errno__
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 697
    functionName: ret_set_errno
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ret_set_errno(__ret__, __errno__)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __errno__
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: ret_errno
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ret_errno(__errno__)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 715
    functionName: ARRAY_SIZE
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 734
    functionName: swap
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: min
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 744
    functionName: BUILD_BUG_ON_ZERO
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON_ZERO(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 758
    functionName: __const_hweight8
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __const_hweight8(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 760
    functionName: __const_hweight16
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __const_hweight16(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: __const_hweight32
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __const_hweight32(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: __const_hweight64
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __const_hweight64(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    functionName: hweight8
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hweight8(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: hweight16
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hweight16(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 766
    functionName: hweight32
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hweight32(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 767
    functionName: hweight64
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hweight64(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 774
    functionName: BITS_PER_TYPE
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_PER_TYPE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 775
    functionName: LAST_BIT_PER_TYPE
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAST_BIT_PER_TYPE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - flags
    - mask
    argTypes:
    - __u32
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 784
    functionName: has_exact_flags
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_exact_flags(__u32 flags, __u32 mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 799
    functionName: container_of
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 805
    functionName: DIV_ROUND_UP
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIV_ROUND_UP(n, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 806
    functionName: BITS_TO_LONGS
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_LONGS(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - bitarr
    argTypes:
    - __u32
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 810
    functionName: set_bit
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_bit(__u32 bit, __u32 *bitarr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - bitarr
    argTypes:
    - __u32
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: clear_bit
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_bit(__u32 bit, __u32 *bitarr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - bitarr
    argTypes:
    - __u32
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: is_set
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_set(__u32 bit, __u32 *bitarr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 823
    functionName: BIT
    functionSourceFile: /src/lxc/src/lxc/macro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT(nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/lxc.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: put_lxc_container
    functionSourceFile: /src/lxc/src/lxc/lxc.h
    functionUses: 0
    functionsReached:
    - lxc_container_put
    linkageType: ''
    returnType: void
    signature: void put_lxc_container(struct lxc_container *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cmd
    - arg2
    - arg3
    - arg4
    - arg5
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: __keyctl
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: long
    signature: "long __keyctl(int cmd, unsigned long arg2, unsigned long arg3,\n\t\t\t
      \   unsigned long arg4, unsigned long arg5)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: memfd_create_lxc
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int memfd_create_lxc(const char *name, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new_root
    - put_old
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: pivot_root
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 2
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int pivot_root(const char *new_root, const char *put_old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: sethostname
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int sethostname(const char *name, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - nstype
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: setns
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 6
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int setns(int fd, int nstype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:118,1
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - mask
    - flags
    argTypes:
    - int
    - sigset_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: signalfd
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int signalfd(int fd, const sigset_t *mask, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: unshare
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 8
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int unshare(int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - __fd
    - __file
    - __type
    - __flag
    argTypes:
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: faccessat
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 1
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int faccessat(int __fd, const char *__file, int __type, int __flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - max_fd
    - flags
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: close_range
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int close_range(unsigned int fd, unsigned int max_fd, unsigned int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/syscall_wrappers.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - persona
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: personality
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 4
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int personality(unsigned long persona)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - __u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: core_scheduling_cookie_valid
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool core_scheduling_cookie_valid(__u64 cookie)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/syscall_wrappers.h:219,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/syscall_wrappers.h:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pid
    - cookie
    argTypes:
    - pid_t
    - __u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 229
    functionName: core_scheduling_cookie_get
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 2
    functionsReached:
    - ret_errno
    - prctl
    linkageType: ''
    returnType: int
    signature: int core_scheduling_cookie_get(pid_t pid, __u64 *cookie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/lxc/src/lxc/syscall_wrappers.h:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: core_scheduling_cookie_create_threadgroup
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 0
    functionsReached:
    - prctl
    linkageType: ''
    returnType: int
    signature: int core_scheduling_cookie_create_threadgroup(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prctl
      Src: /src/lxc/src/lxc/syscall_wrappers.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: core_scheduling_cookie_share_with
    functionSourceFile: /src/lxc/src/lxc/syscall_wrappers.h
    functionUses: 1
    functionsReached:
    - prctl
    linkageType: ''
    returnType: int
    signature: int core_scheduling_cookie_share_with(pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: lxc_caps_down
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_caps_down(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: lxc_caps_up
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_caps_up(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: lxc_ambient_caps_up
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_ambient_caps_up(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: lxc_ambient_caps_down
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_ambient_caps_down(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: lxc_caps_init
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_caps_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cap
    argTypes:
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: lxc_caps_last_cap
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_caps_last_cap(__u32 *cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cap
    - flag
    argTypes:
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: lxc_proc_cap_is_set
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lxc_proc_cap_is_set(cap_value_t cap, cap_flag_t flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - cap
    - flag
    argTypes:
    - char*
    - cap_value_t
    - cap_flag_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: lxc_file_cap_is_set
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool lxc_file_cap_is_set(const char *path, cap_value_t cap,\n\t\t\t\t
      \      cap_flag_t flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __lxc_function
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: lxc_priv
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_priv(__lxc_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __lxc_function
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: lxc_unpriv
    functionSourceFile: /src/lxc/src/lxc/caps.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_unpriv(__lxc_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: lxc_open_dirfd
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - open_at
    linkageType: ''
    returnType: int
    signature: int lxc_open_dirfd(const char *dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:33,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dirfd
    - filename
    - buf
    - count
    argTypes:
    - int
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: lxc_readat
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - open_at
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: int lxc_readat(int dirfd, const char *filename, void *buf, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:49,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/file_utils.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - dirfd
    - filename
    - buf
    - count
    argTypes:
    - int
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: lxc_writeat
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - open_at
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int lxc_writeat(int dirfd, const char *filename, const void *buf, size_t
      count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/file_utils.c:65,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/file_utils.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dir
    - filename
    - buf
    - count
    argTypes:
    - char*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: lxc_write_openat
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - lxc_writeat
    - open
    linkageType: ''
    returnType: int
    signature: "int lxc_write_openat(const char *dir, const char *filename, const
      void *buf,\n\t\t     size_t count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/file_utils.c:78,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/file_utils.c:82,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/file_utils.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - filename
    - buf
    - count
    - add_newline
    - mode
    argTypes:
    - char*
    - void*
    - size_t
    - bool
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 96
    functionName: lxc_write_to_file
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 3
    functionsReached:
    - lxc_write_nointr
    - open
    linkageType: ''
    returnType: int
    signature: "int lxc_write_to_file(const char *filename, const void *buf, size_t
      count,\n\t\t      bool add_newline, mode_t mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/file_utils.c:103,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:111,1
    - Dst: memset
      Src: /src/lxc/src/lxc/file_utils.c:117,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - filename
    - buf
    - count
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 122
    functionName: lxc_read_from_file
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_read_nointr
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_read_from_file(const char *filename, void *buf, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:129,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:137,1
    - Dst: memset
      Src: /src/lxc/src/lxc/file_utils.c:143,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - dfd
    - path
    - buf
    - count
    argTypes:
    - int
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 148
    functionName: lxc_read_try_buf_at
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - open_at
    - lxc_read_nointr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_read_try_buf_at(int dfd, const char *path, void *buf, size_t
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/lxc/src/lxc/file_utils.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: lxc_write_nointr
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 19
    functionsReached:
    - write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_write_nointr(int fd, const void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pwrite
      Src: /src/lxc/src/lxc/file_utils.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - offset
    argTypes:
    - int
    - void*
    - size_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: lxc_pwrite_nointr
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - pwrite
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_pwrite_nointr(int fd, const void *buf, size_t count, off_t
      offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/lxc/src/lxc/file_utils.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - sockfd
    - buf
    - len
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: lxc_send_nointr
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - send
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_send_nointr(int sockfd, void *buf, size_t len, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/lxc/src/lxc/file_utils.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: lxc_read_nointr
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 15
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_read_nointr(int fd, void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/lxc/src/lxc/file_utils.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - sockfd
    - buf
    - len
    - flags
    argTypes:
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: lxc_recv_nointr
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - recv
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_recv_nointr(int sockfd, void *buf, size_t len, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recvmsg
      Src: /src/lxc/src/lxc/file_utils.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - sockfd
    - iov
    - iovlen
    - flags
    argTypes:
    - int
    - struct iovec*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 219
    functionName: lxc_recvmsg_nointr_iov
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - recvmsg
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_recvmsg_nointr_iov(int sockfd, struct iovec *iov, size_t
      iovlen,\n\t\t\t       int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:226,1
    - Dst: memcmp
      Src: /src/lxc/src/lxc/file_utils.c:233,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/file_utils.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - expected_buf
    argTypes:
    - int
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 237
    functionName: lxc_read_nointr_expect
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - memcmp
    - lxc_read_nointr
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_read_nointr_expect(int fd, void *buf, size_t count,\n\t\t\t
      \      const void *expected_buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/file_utils.c:244,1
    - Dst: lxc_read_nointr_expect
      Src: /src/lxc/src/lxc/file_utils.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - path
    - buf
    - count
    - expected_buf
    argTypes:
    - char*
    - void*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: lxc_read_file_expect
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - lxc_read_nointr_expect
    - open
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_read_file_expect(const char *path, void *buf, size_t count,\n\t\t\t
      \    const void *expected_buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/lxc/src/lxc/file_utils.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: file_exists
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 13
    functionsReached:
    - stat
    linkageType: ''
    returnType: bool
    signature: bool file_exists(const char *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/file_utils.c:264,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/file_utils.c:268,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/file_utils.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - file
    - content
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: print_to_file
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - strlen
    - fopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int print_to_file(const char *file, const char *content)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/lxc/src/lxc/file_utils.c:283,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/file_utils.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: lxc_is_dir
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - stat
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int lxc_is_dir(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_cloexec
      Src: /src/lxc/src/lxc/file_utils.c:300,1
    - Dst: getline
      Src: /src/lxc/src/lxc/file_utils.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: lxc_count_file_lines
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - fopen_cloexec
    - getline
    linkageType: ''
    returnType: int
    signature: int lxc_count_file_lines(const char *fn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/lxc/src/lxc/file_utils.c:316,1
    - Dst: mkstemp
      Src: /src/lxc/src/lxc/file_utils.c:317,1
    - Dst: umask
      Src: /src/lxc/src/lxc/file_utils.c:318,1
    - Dst: lxc_set_cloexec
      Src: /src/lxc/src/lxc/file_utils.c:322,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:326,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/file_utils.c:328,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - rm
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 333
    functionName: lxc_make_tmpfile
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 10
    functionsReached:
    - lxc_set_cloexec
    - mkstemp
    - unlink
    - move_fd
    - umask
    linkageType: ''
    returnType: int
    signature: int lxc_make_tmpfile(char *template, bool rm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fs
    - magic_val
    argTypes:
    - struct statfs*
    - fs_type_magic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: lxc_is_fs_type
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lxc_is_fs_type(const struct statfs *fs, fs_type_magic magic_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/lxc/src/lxc/file_utils.c:345,1
    - Dst: lxc_is_fs_type
      Src: /src/lxc/src/lxc/file_utils.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - path
    - magic_val
    argTypes:
    - char*
    - fs_type_magic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: has_fs_type
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - lxc_is_fs_type
    - statfs
    linkageType: ''
    returnType: bool
    signature: bool has_fs_type(const char *path, fs_type_magic magic_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstatfs
      Src: /src/lxc/src/lxc/file_utils.c:357,1
    - Dst: lxc_is_fs_type
      Src: /src/lxc/src/lxc/file_utils.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - magic_val
    argTypes:
    - int
    - fs_type_magic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 362
    functionName: fhas_fs_type
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - lxc_is_fs_type
    - fstatfs
    linkageType: ''
    returnType: bool
    signature: bool fhas_fs_type(int fd, fs_type_magic magic_val)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/file_utils.c:370,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/file_utils.c:373,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/file_utils.c:376,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/file_utils.c:379,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/file_utils.c:382,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/file_utils.c:385,1
    - Dst: open
      Src: /src/lxc/src/lxc/file_utils.c:393,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/file_utils.c:397,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:399,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 401
    functionName: fopen_cloexec
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 2
    functionsReached:
    - strnequal
    - fdopen
    - move_fd
    - open
    linkageType: ''
    returnType: FILE
    signature: FILE *fopen_cloexec(const char *path, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sendfile
      Src: /src/lxc/src/lxc/file_utils.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - out_fd
    - in_fd
    - offset
    - count
    argTypes:
    - int
    - int
    - off_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 412
    functionName: lxc_sendfile_nointr
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - sendfile
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_sendfile_nointr(int out_fd, int in_fd, off_t *offset, size_t
      count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:424,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/file_utils.c:435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 445
    functionName: __fd_to_fd
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 2
    functionsReached:
    - lxc_write_nointr
    - lxc_read_nointr
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t __fd_to_fd(int from, int to)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/file_utils.c:460,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/file_utils.c:467,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/file_utils.c:469,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/file_utils.c:471,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/file_utils.c:475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - fd
    - buf
    - length
    argTypes:
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 477
    functionName: fd_to_buf
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ret_errno
    - move_ptr
    - lxc_read_nointr
    - realloc
    linkageType: ''
    returnType: int
    signature: int fd_to_buf(int fd, char **buf, size_t *length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/file_utils.c:487,1
    - Dst: fd_to_buf
      Src: /src/lxc/src/lxc/file_utils.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - path
    - length
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 495
    functionName: file_to_buf
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 2
    functionsReached:
    - fd_to_buf
    - open
    linkageType: ''
    returnType: char
    signature: char *file_to_buf(const char *path, size_t *length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: file_to_buf
      Src: /src/lxc/src/lxc/file_utils.c:504,1
    - Dst: fmemopen
      Src: /src/lxc/src/lxc/file_utils.c:508,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/file_utils.c:511,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/file_utils.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - path
    - mode
    - caller_freed_buffer
    argTypes:
    - char*
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: fopen_cached
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - fopen
    - file_to_buf
    - move_ptr
    - fmemopen
    linkageType: ''
    returnType: FILE
    signature: FILE *fopen_cached(const char *path, const char *mode, void **caller_freed_buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fd_to_buf
      Src: /src/lxc/src/lxc/file_utils.c:525,1
    - Dst: fmemopen
      Src: /src/lxc/src/lxc/file_utils.c:528,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/file_utils.c:532,1
    - Dst: dup
      Src: /src/lxc/src/lxc/file_utils.c:538,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/file_utils.c:542,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - mode
    - caller_freed_buffer
    argTypes:
    - int
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 550
    functionName: fdopen_cached
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - move_ptr
    - fd_to_buf
    - dup
    - fmemopen
    - move_fd
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: FILE *fdopen_cached(int fd, const char *mode, void **caller_freed_buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/lxc/src/lxc/file_utils.c:556,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/file_utils.c:568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - fd
    - cloexec
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 572
    functionName: lxc_fd_cloexec
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 3
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int lxc_fd_cloexec(int fd, bool cloexec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/file_utils.c:580,1
    - Dst: dup_cloexec
      Src: /src/lxc/src/lxc/file_utils.c:581,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:583,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/file_utils.c:587,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:592,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/file_utils.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - dfd
    - path
    - mode
    - o_flags
    - resolve_flags
    argTypes:
    - int
    - char*
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 595
    functionName: fdopen_at
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 3
    functionsReached:
    - dup_cloexec
    - move_ptr
    - is_empty_string
    - open_at
    - move_fd
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: "FILE *fdopen_at(int dfd, const char *path, const char *mode,\n\t\tunsigned
      int o_flags, unsigned int resolve_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/file_utils.c:601,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/file_utils.c:602,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/file_utils.c:602,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/file_utils.c:603,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/file_utils.c:603,1
    - Dst: open
      Src: /src/lxc/src/lxc/file_utils.c:608,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/file_utils.c:612,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/file_utils.c:614,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/file_utils.c:616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - clk_id
    - s_offset
    - ns_offset
    argTypes:
    - clockid_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 621
    functionName: timens_offset_write
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - ret_errno
    - INTTYPE_TO_STRLEN
    - STRLITERALLEN
    - lxc_write_nointr
    - open
    linkageType: ''
    returnType: int
    signature: int timens_offset_write(clockid_t clk_id, int64_t s_offset, int64_t
      ns_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fstatat
      Src: /src/lxc/src/lxc/file_utils.c:628,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/file_utils.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dir_fd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 639
    functionName: exists_dir_at
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - fstatat
    - S_ISDIR
    linkageType: ''
    returnType: bool
    signature: bool exists_dir_at(int dir_fd, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstatat
      Src: /src/lxc/src/lxc/file_utils.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dir_fd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 650
    functionName: exists_file_at
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - fstatat
    linkageType: ''
    returnType: bool
    signature: bool exists_file_at(int dir_fd, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: openat2
      Src: /src/lxc/src/lxc/file_utils.c:662,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:664,1
    - Dst: openat
      Src: /src/lxc/src/lxc/file_utils.c:669,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - dfd
    - path
    - o_flags
    - resolve_flags
    - mode
    argTypes:
    - int
    - char*
    - unsigned int
    - unsigned int
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 674
    functionName: open_at
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 30
    functionsReached:
    - openat2
    - openat
    - move_fd
    linkageType: ''
    returnType: int
    signature: "int open_at(int dfd, const char *path, unsigned int o_flags,\n\t    unsigned
      int resolve_flags, mode_t mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:681,1
    - Dst: same_file_lax
      Src: /src/lxc/src/lxc/file_utils.c:685,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/file_utils.c:686,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - fd_same
    - dfd
    - path
    - o_flags
    - resolve_flags
    - mode
    argTypes:
    - int
    - int
    - char*
    - unsigned int
    - unsigned int
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 689
    functionName: open_at_same
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 2
    functionsReached:
    - same_file_lax
    - open_at
    - ret_errno
    - move_fd
    linkageType: ''
    returnType: int
    signature: "int open_at_same(int fd_same, int dfd, const char *path, unsigned
      int o_flags,\n\t\t unsigned int resolve_flags, mode_t mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/lxc/src/lxc/file_utils.c:695,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/file_utils.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: fd_make_blocking
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 1
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int fd_make_blocking(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/lxc/src/lxc/file_utils.c:707,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/file_utils.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 713
    functionName: fd_make_nonblocking
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int fd_make_nonblocking(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/file_utils.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - mem
    - oldlen
    - newlen
    argTypes:
    - char**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 723
    functionName: batch_realloc
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - must_realloc
    linkageType: ''
    returnType: void
    signature: void batch_realloc(char **mem, size_t oldlen, size_t newlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: batch_realloc
      Src: /src/lxc/src/lxc/file_utils.c:729,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/file_utils.c:731,1
    - Dst: newlen::newlen
      Src: /src/lxc/src/lxc/file_utils.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dest
    - oldlen
    - new
    - newlen
    argTypes:
    - char**
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 732
    functionName: append_line
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - batch_realloc
    - memcpy
    - newlen::newlen
    linkageType: ''
    returnType: void
    signature: void append_line(char **dest, size_t oldlen, char *new, size_t newlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:744,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/file_utils.c:748,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/file_utils.c:752,1
    - Dst: getline
      Src: /src/lxc/src/lxc/file_utils.c:754,1
    - Dst: append_line
      Src: /src/lxc/src/lxc/file_utils.c:755,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/file_utils.c:759,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - dfd
    - fnam
    - o_flags
    - resolve_flags
    argTypes:
    - int
    - char*
    - unsigned int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 760
    functionName: read_file_at
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - append_line
    - move_ptr
    - open_at
    - getline
    - move_fd
    - fdopen
    linkageType: ''
    returnType: char
    signature: "char *read_file_at(int dfd, const char *fnam,\n\t\t   unsigned int
      o_flags, unsigned resolve_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fstat
      Src: /src/lxc/src/lxc/file_utils.c:770,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/file_utils.c:773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - fda
    - fdb
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 783
    functionName: same_file_lax
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 2
    functionsReached:
    - fstat
    linkageType: ''
    returnType: bool
    signature: bool same_file_lax(int fda, int fdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/file_utils.c:794,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/file_utils.c:795,1
    - Dst: fstatat
      Src: /src/lxc/src/lxc/file_utils.c:797,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/file_utils.c:801,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/file_utils.c:802,1
    - Dst: fstatat
      Src: /src/lxc/src/lxc/file_utils.c:804,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - fda
    - patha
    - fdb
    - pathb
    argTypes:
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 815
    functionName: same_device
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - is_empty_string
    - fstatat
    - fstat
    linkageType: ''
    returnType: bool
    signature: bool same_device(int fda, const char *patha, int fdb, const char *pathb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/file_utils.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dfd
    - path
    - flags
    argTypes:
    - int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: open_beneath
    functionSourceFile: /src/lxc/src/lxc/file_utils.c
    functionUses: 0
    functionsReached:
    - open_at
    linkageType: ''
    returnType: int
    signature: int open_beneath(int dfd, const char *path, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: ns_info
    functionSourceFile: /src/lxc/src/lxc/namespace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ns_info
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: lxc_net_type_to_str
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_net_type_to_str(int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: randseed
      Src: /src/lxc/src/lxc/network.c:84,1
    - Dst: randseed
      Src: /src/lxc/src/lxc/network.c:87,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:90,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:96,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:98,1
    - Dst: rand_r
      Src: /src/lxc/src/lxc/network.c:101,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:101,1
    - Dst: rand
      Src: /src/lxc/src/lxc/network.c:103,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:103,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:108,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 115
    functionName: lxc_ifname_alnum_case_sensitive
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - rand_r
    - strlcpy
    - strlen
    - if_nametoindex
    - randseed
    - rand
    linkageType: ''
    returnType: char
    signature: char *lxc_ifname_alnum_case_sensitive(char *template)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:125,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:127,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:134,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:138,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:142,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:150,1
    - Dst: nla_put_buffer
      Src: /src/lxc/src/lxc/network.c:161,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:164,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 5
    argNames:
    - nlmsg_type
    - family
    - ifindex
    - dest
    - netmask
    argTypes:
    - __u16
    - int
    - int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 168
    functionName: lxc_ip_route_dest
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - nla_put_u32
    - netlink_open
    - nla_put_buffer
    - netlink_transaction
    - nlmsg_alloc_reserve
    - nlmsg_alloc
    - call_cleaner
    - nlmsg_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_ip_route_dest(__u16 nlmsg_type, int family, int ifindex, void
      *dest, unsigned int netmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ip_route_dest
      Src: /src/lxc/src/lxc/network.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ifindex
    - dest
    - netmask
    argTypes:
    - int
    - struct in_addr*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: lxc_ipv4_dest_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ip_route_dest
    linkageType: ''
    returnType: int
    signature: int lxc_ipv4_dest_add(int ifindex, struct in_addr *dest, unsigned int
      netmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ip_route_dest
      Src: /src/lxc/src/lxc/network.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ifindex
    - dest
    - netmask
    argTypes:
    - int
    - struct in6_addr*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: lxc_ipv6_dest_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ip_route_dest
    linkageType: ''
    returnType: int
    signature: int lxc_ipv6_dest_add(int ifindex, struct in6_addr *dest, unsigned
      int netmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ip_route_dest
      Src: /src/lxc/src/lxc/network.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ifindex
    - dest
    - netmask
    argTypes:
    - int
    - struct in_addr*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: lxc_ipv4_dest_del
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ip_route_dest
    linkageType: ''
    returnType: int
    signature: int lxc_ipv4_dest_del(int ifindex, struct in_addr *dest, unsigned int
      netmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ip_route_dest
      Src: /src/lxc/src/lxc/network.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ifindex
    - dest
    - netmask
    argTypes:
    - int
    - struct in6_addr*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: lxc_ipv6_dest_del
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ip_route_dest
    linkageType: ''
    returnType: int
    signature: int lxc_ipv6_dest_del(int ifindex, struct in6_addr *dest, unsigned
      int netmask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:198,1
    - Dst: lxc_ipv4_dest_add
      Src: /src/lxc/src/lxc/network.c:199,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: setup_ipv4_routes
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ipv4_dest_add
    - log_error_errno
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int setup_ipv4_routes(struct lxc_netdev *netdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:213,1
    - Dst: lxc_ipv6_dest_add
      Src: /src/lxc/src/lxc/network.c:214,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: setup_ipv6_routes
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ipv6_dest_add
    - log_error_errno
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int setup_ipv6_routes(struct lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:229,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:232,1
    - Dst: lxc_ipv4_dest_add
      Src: /src/lxc/src/lxc/network.c:233,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 239
    functionName: setup_ipv4_addr_routes
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ipv4_dest_add
    - log_error_errno
    - ret_errno
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int setup_ipv4_addr_routes(struct lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:248,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:251,1
    - Dst: lxc_ipv6_dest_add
      Src: /src/lxc/src/lxc/network.c:253,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 259
    functionName: setup_ipv6_addr_routes
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - lxc_ipv6_dest_add
    - ret_errno
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int setup_ipv6_addr_routes(struct lxc_netdev *netdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:263,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:265,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:271,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:275,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:279,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:286,1
    - Dst: nla_put_buffer
      Src: /src/lxc/src/lxc/network.c:295,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - nlmsg_type
    - family
    - ifindex
    - dest
    argTypes:
    - __u16
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 299
    functionName: lxc_ip_neigh_proxy
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - netlink_open
    - nla_put_buffer
    - netlink_transaction
    - nlmsg_alloc_reserve
    - nlmsg_alloc
    - call_cleaner
    - nlmsg_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_ip_neigh_proxy(__u16 nlmsg_type, int family, int ifindex, void
      *dest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:308,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:310,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:314,1
    - Dst: lxc_read_file_expect
      Src: /src/lxc/src/lxc/network.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ifname
    - family
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 317
    functionName: lxc_is_ip_forwarding_enabled
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - lxc_read_file_expect
    - strnprintf
    linkageType: ''
    returnType: int
    signature: int lxc_is_ip_forwarding_enabled(const char *ifname, int family)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:326,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:328,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:335,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:339,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:341,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:343,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:345,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:350,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:352,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:356,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:358,1
    - Dst: nla_put_u16
      Src: /src/lxc/src/lxc/network.c:361,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:362,1
    - Dst: nla_put_buffer
      Src: /src/lxc/src/lxc/network.c:369,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:370,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:372,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:374,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - ifindex
    - operation
    - vlan_id
    - tagged
    argTypes:
    - unsigned int
    - unsigned short
    - unsigned short
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 375
    functionName: lxc_bridge_vlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - netlink_open
    - nla_put_buffer
    - nla_end_nested
    - netlink_transaction
    - nlmsg_alloc
    - nla_begin_nested
    - nla_put_u16
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_bridge_vlan(unsigned int ifindex, unsigned short operation,
      unsigned short vlan_id, bool tagged)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_bridge_vlan
      Src: /src/lxc/src/lxc/network.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ifindex
    - vlan_id
    - tagged
    argTypes:
    - unsigned int
    - unsigned short
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 5
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: lxc_bridge_vlan_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_bridge_vlan
    linkageType: ''
    returnType: int
    signature: int lxc_bridge_vlan_add(unsigned int ifindex, unsigned short vlan_id,
      bool tagged)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_bridge_vlan
      Src: /src/lxc/src/lxc/network.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ifindex
    - vlan_id
    argTypes:
    - unsigned int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: lxc_bridge_vlan_del
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_bridge_vlan
    linkageType: ''
    returnType: int
    signature: int lxc_bridge_vlan_del(unsigned int ifindex, unsigned short vlan_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTR_TO_USHORT
      Src: /src/lxc/src/lxc/network.c:393,1
    - Dst: lxc_bridge_vlan_add
      Src: /src/lxc/src/lxc/network.c:395,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ifindex
    - vlan_ids
    argTypes:
    - unsigned int
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 387
    functionDepth: 6
    functionLinenumber: 387
    functionLinenumberEnd: 401
    functionName: lxc_bridge_vlan_add_tagged
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - PTR_TO_USHORT
    - lxc_bridge_vlan_add
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_bridge_vlan_add_tagged(unsigned int ifindex, struct lxc_list
      *vlan_ids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTR_TO_USHORT
      Src: /src/lxc/src/lxc/network.c:393,1
    - Dst: lxc_bridge_vlan_add
      Src: /src/lxc/src/lxc/network.c:395,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 6
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: lxc_list_for_each
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - PTR_TO_USHORT
    - lxc_bridge_vlan_add
    - log_error_errno
    linkageType: ''
    returnType: void
    signature: void lxc_list_for_each(iterator, vlan_ids)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:405,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:408,1
    - Dst: lxc_list_len
      Src: /src/lxc/src/lxc/network.c:411,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:412,1
    - Dst: lxc_list_for_each
      Src: /src/lxc/src/lxc/network.c:417,1
    - Dst: PTR_TO_USHORT
      Src: /src/lxc/src/lxc/network.c:418,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 425
    functionName: validate_veth
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_list_for_each
    - PTR_TO_USHORT
    - is_empty_string
    - log_error_errno
    - lxc_list_len
    linkageType: ''
    returnType: int
    signature: int validate_veth(struct lxc_netdev *netdev)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/network.c:430,1
    - Dst: lxc_list_len
      Src: /src/lxc/src/lxc/network.c:434,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:438,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/network.c:442,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:444,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/network.c:448,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:449,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:452,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:454,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:461,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/network.c:465,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:467,1
    - Dst: get_u16
      Src: /src/lxc/src/lxc/network.c:470,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:472,1
    - Dst: lxc_bridge_vlan_del
      Src: /src/lxc/src/lxc/network.c:476,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:478,1
    - Dst: lxc_bridge_vlan_add
      Src: /src/lxc/src/lxc/network.c:482,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:484,1
    - Dst: lxc_bridge_vlan_add_tagged
      Src: /src/lxc/src/lxc/network.c:489,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:491,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - veth1
    - netdev
    argTypes:
    - char*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 427
    functionDepth: 7
    functionLinenumber: 427
    functionLinenumberEnd: 494
    functionName: setup_veth_native_bridge_vlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - lxc_bridge_vlan_add
    - get_u16
    - strequal
    - STRLITERALLEN
    - lxc_read_from_file
    - if_nametoindex
    - lxc_bridge_vlan_add_tagged
    - lxc_bridge_vlan_del
    - log_error_errno
    - lxc_list_len
    linkageType: ''
    returnType: int
    signature: int setup_veth_native_bridge_vlan(char *veth1, struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/network.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct ovs_veth_vlan_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: free_ovs_veth_vlan_args
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void free_ovs_veth_vlan_args(struct ovs_veth_vlan_args *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:514,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/network.c:516,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:522,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:524,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/network.c:526,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/network.c:530,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:534,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:536,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 543
    functionName: lxc_ovs_setup_bridge_vlan_exec
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - ret_errno
    - must_concat
    - execlp
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_ovs_setup_bridge_vlan_exec(void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_len
      Src: /src/lxc/src/lxc/network.c:547,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:561,1
    - Dst: lxc_list_for_each
      Src: /src/lxc/src/lxc/network.c:583,1
    - Dst: PTR_TO_USHORT
      Src: /src/lxc/src/lxc/network.c:584,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:588,1
    - Dst: free_ovs_veth_vlan_args
      Src: /src/lxc/src/lxc/network.c:590,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:591,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/network.c:595,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/network.c:597,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/network.c:605,1
    - Dst: free_ovs_veth_vlan_args
      Src: /src/lxc/src/lxc/network.c:607,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:608,1
    - Dst: free_ovs_veth_vlan_args
      Src: /src/lxc/src/lxc/network.c:612,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - veth1
    - netdev
    argTypes:
    - char*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 614
    functionName: setup_veth_ovs_bridge_vlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_list_for_each
    - run_command
    - strnprintf
    - PTR_TO_USHORT
    - must_concat
    - free_ovs_veth_vlan_args
    - log_error_errno
    - lxc_list_len
    linkageType: ''
    returnType: int
    signature: int setup_veth_ovs_bridge_vlan(char *veth1, struct lxc_netdev *netdev)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: validate_veth
      Src: /src/lxc/src/lxc/network.c:623,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:627,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/network.c:630,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:632,1
    - Dst: lxc_ifname_alnum_case_sensitive
      Src: /src/lxc/src/lxc/network.c:636,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/network.c:641,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:644,1
    - Dst: lxc_ifname_alnum_case_sensitive
      Src: /src/lxc/src/lxc/network.c:648,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/network.c:654,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:655,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:656,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:659,1
    - Dst: netdev_get_mtu
      Src: /src/lxc/src/lxc/network.c:661,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:662,1
    - Dst: lxc_veth_create
      Src: /src/lxc/src/lxc/network.c:666,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:669,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:679,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:686,1
    - Dst: setup_private_host_hw_addr
      Src: /src/lxc/src/lxc/network.c:693,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:696,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:701,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:703,1
    - Dst: lxc_netdev_set_mtu
      Src: /src/lxc/src/lxc/network.c:708,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:711,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:716,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/network.c:721,1
    - Dst: open
      Src: /src/lxc/src/lxc/network.c:722,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:726,1
    - Dst: write
      Src: /src/lxc/src/lxc/network.c:729,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:731,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:734,1
    - Dst: lxc_nic_exists
      Src: /src/lxc/src/lxc/network.c:737,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:738,1
    - Dst: lxc_bridge_attach
      Src: /src/lxc/src/lxc/network.c:742,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:745,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:748,1
    - Dst: is_ovs_bridge
      Src: /src/lxc/src/lxc/network.c:750,1
    - Dst: setup_veth_ovs_bridge_vlan
      Src: /src/lxc/src/lxc/network.c:751,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:753,1
    - Dst: lxc_ovs_delete_port
      Src: /src/lxc/src/lxc/network.c:754,1
    - Dst: setup_veth_native_bridge_vlan
      Src: /src/lxc/src/lxc/network.c:758,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:760,1
    - Dst: lxc_netdev_up
      Src: /src/lxc/src/lxc/network.c:766,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:769,1
    - Dst: setup_ipv4_routes
      Src: /src/lxc/src/lxc/network.c:774,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:775,1
    - Dst: setup_ipv6_routes
      Src: /src/lxc/src/lxc/network.c:780,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:781,1
    - Dst: nanosleep
      Src: /src/lxc/src/lxc/network.c:791,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:795,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:796,1
    - Dst: lxc_ip_forwarding_on
      Src: /src/lxc/src/lxc/network.c:800,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:802,1
    - Dst: lxc_ip_neigh_proxy
      Src: /src/lxc/src/lxc/network.c:806,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:808,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:816,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:817,1
    - Dst: lxc_is_ip_forwarding_enabled
      Src: /src/lxc/src/lxc/network.c:824,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:826,1
    - Dst: lxc_ip_forwarding_on
      Src: /src/lxc/src/lxc/network.c:830,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:832,1
    - Dst: lxc_neigh_proxy_on
      Src: /src/lxc/src/lxc/network.c:836,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:838,1
    - Dst: lxc_ip_neigh_proxy
      Src: /src/lxc/src/lxc/network.c:842,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:844,1
    - Dst: setup_ipv4_addr_routes
      Src: /src/lxc/src/lxc/network.c:850,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:852,1
    - Dst: setup_ipv6_addr_routes
      Src: /src/lxc/src/lxc/network.c:857,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:859,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:872,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:879,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/network.c:884,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 203
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 616
    functionDepth: 8
    functionLinenumber: 616
    functionLinenumberEnd: 886
    functionName: netdev_configure_server_veth
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - is_ovs_bridge
    - nanosleep
    - setup_ipv4_addr_routes
    - lxc_safe_uint
    - close
    - setup_ipv6_routes
    - setup_ipv4_routes
    - lxc_is_ip_forwarding_enabled
    - lxc_netdev_set_mtu
    - lxc_ip_forwarding_on
    - lxc_neigh_proxy_on
    - memcpy
    - lxc_veth_create
    - validate_veth
    - lxc_nic_exists
    - snprintf
    - lxc_ifname_alnum_case_sensitive
    - open
    - setup_veth_native_bridge_vlan
    - setup_private_host_hw_addr
    - lxc_ip_neigh_proxy
    - lxc_netdev_up
    - inet_ntop
    - if_nametoindex
    - SYSERROR
    - is_empty_string
    - run_script_argv
    - DEBUG
    - setup_ipv6_addr_routes
    - write
    - strnprintf
    - netdev_get_mtu
    - strlcpy
    - setup_veth_ovs_bridge_vlan
    - INFO
    - lxc_ovs_delete_port
    - lxc_netdev_delete_by_name
    - ERROR
    - log_error_errno
    - lxc_bridge_attach
    linkageType: ''
    returnType: int
    signature: int netdev_configure_server_veth(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:893,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:894,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:898,1
    - Dst: lxc_ifname_alnum_case_sensitive
      Src: /src/lxc/src/lxc/network.c:902,1
    - Dst: lxc_macvlan_create
      Src: /src/lxc/src/lxc/network.c:905,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:909,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:914,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:916,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:918,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/network.c:925,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:928,1
    - Dst: lxc_netdev_set_mtu
      Src: /src/lxc/src/lxc/network.c:932,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:935,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:947,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:954,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/network.c:960,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 888
    functionDepth: 4
    functionLinenumber: 888
    functionLinenumberEnd: 962
    functionName: netdev_configure_server_macvlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - lxc_safe_uint
    - lxc_macvlan_create
    - strlcpy
    - SYSERROR
    - if_nametoindex
    - is_empty_string
    - run_script_argv
    - DEBUG
    - lxc_ifname_alnum_case_sensitive
    - lxc_netdev_delete_by_name
    - ERROR
    - lxc_netdev_set_mtu
    linkageType: ''
    returnType: int
    signature: int netdev_configure_server_macvlan(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:966,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:968,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:973,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:975,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:977,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:979,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:981,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:983,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:985,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:989,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:991,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:993,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:995,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1000,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1002,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:1005,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1007,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:1009,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1010,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:1012,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1014,1
    - Dst: nla_put_u16
      Src: /src/lxc/src/lxc/network.c:1016,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1017,1
    - Dst: nla_put_u16
      Src: /src/lxc/src/lxc/network.c:1023,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1024,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:1026,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:1027,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:1029,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1030,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:1032,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1033,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:1035,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - parent
    - name
    - mode
    - isolation
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 964
    functionDepth: 4
    functionLinenumber: 964
    functionLinenumberEnd: 1036
    functionName: lxc_ipvlan_create
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - nla_end_nested
    - netlink_transaction
    - nla_put_string
    - if_nametoindex
    - strlen
    - nlmsg_alloc
    - nla_begin_nested
    - nla_put_u16
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_ipvlan_create(const char *parent, const char *name, int mode,
      int isolation)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1043,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:1044,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:1048,1
    - Dst: lxc_ifname_alnum_case_sensitive
      Src: /src/lxc/src/lxc/network.c:1052,1
    - Dst: lxc_ipvlan_create
      Src: /src/lxc/src/lxc/network.c:1055,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:1058,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:1063,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1065,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:1067,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/network.c:1074,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:1077,1
    - Dst: lxc_netdev_set_mtu
      Src: /src/lxc/src/lxc/network.c:1081,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:1084,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1096,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:1102,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/network.c:1108,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1038
    functionDepth: 5
    functionLinenumber: 1038
    functionLinenumberEnd: 1110
    functionName: netdev_configure_server_ipvlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - lxc_safe_uint
    - strlcpy
    - SYSERROR
    - if_nametoindex
    - is_empty_string
    - run_script_argv
    - DEBUG
    - lxc_ifname_alnum_case_sensitive
    - lxc_ipvlan_create
    - lxc_netdev_delete_by_name
    - ERROR
    - lxc_netdev_set_mtu
    linkageType: ''
    returnType: int
    signature: int netdev_configure_server_ipvlan(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1118,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:1119,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:1123,1
    - Dst: lxc_vlan_create
      Src: /src/lxc/src/lxc/network.c:1128,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:1131,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:1136,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1138,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:1140,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/network.c:1147,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:1150,1
    - Dst: lxc_netdev_set_mtu
      Src: /src/lxc/src/lxc/network.c:1154,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:1157,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1169,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:1176,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/network.c:1182,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1184
    functionName: netdev_configure_server_vlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - lxc_safe_uint
    - strlcpy
    - lxc_netdev_set_mtu
    - SYSERROR
    - if_nametoindex
    - is_empty_string
    - run_script_argv
    - DEBUG
    - lxc_netdev_delete_by_name
    - ERROR
    - lxc_vlan_create
    linkageType: ''
    returnType: int
    signature: int netdev_configure_server_vlan(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1190,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1191,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1201,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1203,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:1205,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1206,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:1207,1
    - Dst: netdev_get_mtu
      Src: /src/lxc/src/lxc/network.c:1219,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1221,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/network.c:1228,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1230,1
    - Dst: lxc_netdev_set_mtu
      Src: /src/lxc/src/lxc/network.c:1232,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1234,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1244,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:1250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1186
    functionDepth: 4
    functionLinenumber: 1186
    functionLinenumberEnd: 1254
    functionName: netdev_configure_server_phys
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - netdev_get_mtu
    - strlcpy
    - if_nametoindex
    - is_empty_string
    - run_script_argv
    - DEBUG
    - log_error_errno
    - lxc_netdev_set_mtu
    linkageType: ''
    returnType: int
    signature: int netdev_configure_server_phys(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/network.c:1267,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/network.c:1268,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1256
    functionDepth: 4
    functionLinenumber: 1256
    functionLinenumberEnd: 1279
    functionName: netdev_configure_server_empty
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - run_script_argv
    - strequal
    linkageType: ''
    returnType: int
    signature: int netdev_configure_server_empty(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1285
    functionName: netdev_configure_server_none
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int netdev_configure_server_none(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1303,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1305,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1309,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:1310,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/network.c:1312,1
    - Dst: lxc_netdev_rename_by_name
      Src: /src/lxc/src/lxc/network.c:1315,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1317,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:1320,1
    - Dst: if_indextoname
      Src: /src/lxc/src/lxc/network.c:1327,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:1328,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:1335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1339
    functionName: __netdev_configure_container_common
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strequal
    - strlcpy
    - if_indextoname
    - if_nametoindex
    - is_empty_string
    - TRACE
    - lxc_netdev_rename_by_name
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int __netdev_configure_container_common(struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netdev_configure_container_common
      Src: /src/lxc/src/lxc/network.c:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1341
    functionDepth: 2
    functionLinenumber: 1341
    functionLinenumberEnd: 1345
    functionName: netdev_configure_container_veth
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - __netdev_configure_container_common
    linkageType: ''
    returnType: int
    signature: int netdev_configure_container_veth(struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netdev_configure_container_common
      Src: /src/lxc/src/lxc/network.c:1349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1347
    functionDepth: 2
    functionLinenumber: 1347
    functionLinenumberEnd: 1350
    functionName: netdev_configure_container_macvlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - __netdev_configure_container_common
    linkageType: ''
    returnType: int
    signature: int netdev_configure_container_macvlan(struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netdev_configure_container_common
      Src: /src/lxc/src/lxc/network.c:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1352
    functionDepth: 2
    functionLinenumber: 1352
    functionLinenumberEnd: 1355
    functionName: netdev_configure_container_ipvlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - __netdev_configure_container_common
    linkageType: ''
    returnType: int
    signature: int netdev_configure_container_ipvlan(struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netdev_configure_container_common
      Src: /src/lxc/src/lxc/network.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1357
    functionDepth: 2
    functionLinenumber: 1357
    functionLinenumberEnd: 1360
    functionName: netdev_configure_container_vlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - __netdev_configure_container_common
    linkageType: ''
    returnType: int
    signature: int netdev_configure_container_vlan(struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __netdev_configure_container_common
      Src: /src/lxc/src/lxc/network.c:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1362
    functionDepth: 2
    functionLinenumber: 1362
    functionLinenumberEnd: 1365
    functionName: netdev_configure_container_phys
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - __netdev_configure_container_common
    linkageType: ''
    returnType: int
    signature: int netdev_configure_container_phys(struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1370
    functionName: netdev_configure_container_empty
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int netdev_configure_container_empty(struct lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1375
    functionName: netdev_configure_container_none
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int netdev_configure_container_none(struct lxc_netdev *netdev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1402,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1389
    functionDepth: 4
    functionLinenumber: 1389
    functionLinenumberEnd: 1414
    functionName: netdev_shutdown_server_veth
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - is_empty_string
    - run_script_argv
    linkageType: ''
    returnType: int
    signature: int netdev_shutdown_server_veth(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1416
    functionDepth: 4
    functionLinenumber: 1416
    functionLinenumberEnd: 1434
    functionName: netdev_shutdown_server_macvlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - run_script_argv
    linkageType: ''
    returnType: int
    signature: int netdev_shutdown_server_macvlan(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1436
    functionDepth: 4
    functionLinenumber: 1436
    functionLinenumberEnd: 1454
    functionName: netdev_shutdown_server_ipvlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - run_script_argv
    linkageType: ''
    returnType: int
    signature: int netdev_shutdown_server_ipvlan(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1456
    functionDepth: 4
    functionLinenumber: 1456
    functionLinenumberEnd: 1474
    functionName: netdev_shutdown_server_vlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - run_script_argv
    linkageType: ''
    returnType: int
    signature: int netdev_shutdown_server_vlan(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1476
    functionDepth: 4
    functionLinenumber: 1476
    functionLinenumberEnd: 1494
    functionName: netdev_shutdown_server_phys
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - run_script_argv
    linkageType: ''
    returnType: int
    signature: int netdev_shutdown_server_phys(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:1507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1496
    functionDepth: 4
    functionLinenumber: 1496
    functionLinenumberEnd: 1513
    functionName: netdev_shutdown_server_empty
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - run_script_argv
    linkageType: ''
    returnType: int
    signature: int netdev_shutdown_server_empty(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - netdev
    argTypes:
    - struct lxc_handler*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1518
    functionName: netdev_shutdown_server_none
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int netdev_shutdown_server_none(struct lxc_handler *handler, struct
      lxc_netdev *netdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1534,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1536,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:1540,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:1544,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1546,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1551,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1553,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:1558,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1559,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1561,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:1561,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1562,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:1564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ifindex
    - fd
    - ifname
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1532
    functionDepth: 4
    functionLinenumber: 1532
    functionLinenumberEnd: 1565
    functionName: lxc_netdev_move_by_index_fd
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - netlink_transaction
    - nla_put_string
    - is_empty_string
    - nlmsg_alloc
    - call_cleaner
    - nlmsg_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_move_by_index_fd(int ifindex, int fd, const char *ifname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1569,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1571,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:1575,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:1579,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1581,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1586,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1588,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:1593,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1594,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:1596,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:1596,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1597,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:1599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ifindex
    - pid
    - ifname
    argTypes:
    - int
    - pid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1567
    functionDepth: 4
    functionLinenumber: 1567
    functionLinenumberEnd: 1600
    functionName: lxc_netdev_move_by_index
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - netlink_transaction
    - nla_put_string
    - is_empty_string
    - nlmsg_alloc
    - call_cleaner
    - nlmsg_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_move_by_index(int ifindex, pid_t pid, const char *ifname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:1615,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:1615,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/network.c:1616,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:1617,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/network.c:1621,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/network.c:1626,1
    - Dst: ftell
      Src: /src/lxc/src/lxc/network.c:1627,1
    - Dst: fseek
      Src: /src/lxc/src/lxc/network.c:1628,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/network.c:1632,1
    - Dst: memset
      Src: /src/lxc/src/lxc/network.c:1636,1
    - Dst: fread
      Src: /src/lxc/src/lxc/network.c:1637,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/network.c:1649,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - ifname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1650
    functionName: is_wlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - memset
    - strnprintf
    - move_ptr
    - strlen
    - fseek
    - fread
    - malloc
    - ftell
    - fopen
    - must_realloc
    linkageType: ''
    returnType: char
    signature: char *is_wlan(const char *ifname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/lxc/network.c:1657,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/network.c:1662,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/network.c:1664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pid
    - old
    - new
    argTypes:
    - pid_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1652
    functionDepth: 2
    functionLinenumber: 1652
    functionLinenumberEnd: 1668
    functionName: lxc_netdev_rename_by_name_in_netns
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - fork
    - switch_to_ns
    - wait_for_pid
    linkageType: ''
    returnType: int
    signature: "int lxc_netdev_rename_by_name_in_netns(pid_t pid, const char *old,\n\t\t\t\t\t
      \     const char *new)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: on_path
      Src: /src/lxc/src/lxc/network.c:1680,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:1682,1
    - Dst: fork
      Src: /src/lxc/src/lxc/network.c:1686,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/network.c:1692,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:1693,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:1694,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/network.c:1697,1
    - Dst: lxc_netdev_rename_by_name_in_netns
      Src: /src/lxc/src/lxc/network.c:1701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - physname
    - ifname
    - pid
    - newname
    argTypes:
    - char*
    - char*
    - pid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1704
    functionName: lxc_netdev_move_wlan
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - on_path
    - _exit
    - sprintf
    - wait_for_pid
    - execlp
    - lxc_netdev_rename_by_name_in_netns
    - ERROR
    - fork
    linkageType: ''
    returnType: int
    signature: "int lxc_netdev_move_wlan(char *physname, const char *ifname, pid_t
      pid,\n\t\t\t\tconst char *newname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1714,1
    - Dst: is_wlan
      Src: /src/lxc/src/lxc/network.c:1718,1
    - Dst: lxc_netdev_move_wlan
      Src: /src/lxc/src/lxc/network.c:1720,1
    - Dst: lxc_netdev_move_by_index
      Src: /src/lxc/src/lxc/network.c:1722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ifname
    - pid
    - newname
    argTypes:
    - char*
    - pid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1706
    functionDepth: 5
    functionLinenumber: 1706
    functionLinenumberEnd: 1723
    functionName: lxc_netdev_move_by_name
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 2
    functionsReached:
    - is_wlan
    - lxc_netdev_move_by_index
    - if_nametoindex
    - lxc_netdev_move_wlan
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_move_by_name(const char *ifname, pid_t pid, const char*
      newname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1727,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1729,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:1733,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:1737,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1739,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:1741,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1743,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1748,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1750,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:1755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ifindex
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1725
    functionDepth: 4
    functionLinenumber: 1725
    functionLinenumberEnd: 1756
    functionName: lxc_netdev_delete_by_index
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - netlink_open
    - netlink_transaction
    - nlmsg_alloc
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_delete_by_index(int ifindex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1762,1
    - Dst: lxc_netdev_delete_by_index
      Src: /src/lxc/src/lxc/network.c:1766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1758
    functionDepth: 5
    functionLinenumber: 1758
    functionLinenumberEnd: 1767
    functionName: lxc_netdev_delete_by_name
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 4
    functionsReached:
    - lxc_netdev_delete_by_index
    - if_nametoindex
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_delete_by_name(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1771,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1773,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:1777,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:1781,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1783,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:1785,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1787,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:1789,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1791,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1796,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1798,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:1803,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1804,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:1806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ifindex
    - newname
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1769
    functionDepth: 4
    functionLinenumber: 1769
    functionLinenumberEnd: 1807
    functionName: lxc_netdev_rename_by_index
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - netlink_open
    - netlink_transaction
    - nla_put_string
    - strlen
    - nlmsg_alloc
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_rename_by_index(int ifindex, const char *newname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:1813,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1817,1
    - Dst: lxc_netdev_rename_by_index
      Src: /src/lxc/src/lxc/network.c:1821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - oldname
    - newname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1809
    functionDepth: 5
    functionLinenumber: 1809
    functionLinenumberEnd: 1822
    functionName: lxc_netdev_rename_by_name
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - if_nametoindex
    - strlen
    - lxc_netdev_rename_by_index
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_rename_by_name(const char *oldname, const char *newname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1826,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1828,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:1832,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:1836,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1838,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:1840,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1842,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:1844,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1846,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1848,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1850,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1855,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1857,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:1864,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - name
    - flag
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1824
    functionDepth: 4
    functionLinenumber: 1824
    functionLinenumberEnd: 1865
    functionName: netdev_set_flag
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - netlink_open
    - netlink_transaction
    - strlen
    - if_nametoindex
    - nlmsg_alloc
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int netdev_set_flag(const char *name, int flag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1869,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1871,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1876,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:1878,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:1882,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1884,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:1886,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1888,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:1890,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1892,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:1894,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1896,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1901,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1903,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:1908,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:1910,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:1912,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - name
    - flag
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1867
    functionDepth: 4
    functionLinenumber: 1867
    functionLinenumberEnd: 1916
    functionName: netdev_get_flag
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - netlink_open
    - netlink_transaction
    - ret_set_errno
    - strlen
    - if_nametoindex
    - NLMSG_DATA
    - nlmsg_alloc
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int netdev_get_flag(const char *name, int *flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: netdev_get_flag
      Src: /src/lxc/src/lxc/network.c:1933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1928
    functionDepth: 5
    functionLinenumber: 1928
    functionLinenumberEnd: 1941
    functionName: lxc_netdev_isup
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 2
    functionsReached:
    - netdev_get_flag
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_isup(const char *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1945,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:1947,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:1954,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:1958,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1960,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:1962,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1964,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:1975,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:1977,1
    - Dst: netlink_send
      Src: /src/lxc/src/lxc/network.c:1983,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:1985,1
    - Dst: netlink_rcv
      Src: /src/lxc/src/lxc/network.c:1997,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:1999,1
    - Dst: NLMSG_OK
      Src: /src/lxc/src/lxc/network.c:2006,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:2009,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:2010,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:2019,1
    - Dst: IFLA_RTA
      Src: /src/lxc/src/lxc/network.c:2021,1
    - Dst: NLMSG_LENGTH
      Src: /src/lxc/src/lxc/network.c:2022,1
    - Dst: RTA_OK
      Src: /src/lxc/src/lxc/network.c:2025,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/network.c:2031,1
    - Dst: RTA_DATA
      Src: /src/lxc/src/lxc/network.c:2031,1
    - Dst: RTA_NEXT
      Src: /src/lxc/src/lxc/network.c:2035,1
    - Dst: NLMSG_NEXT
      Src: /src/lxc/src/lxc/network.c:2045,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - ifindex
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 1943
    functionDepth: 3
    functionLinenumber: 1943
    functionLinenumberEnd: 2053
    functionName: netdev_get_mtu
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 2
    functionsReached:
    - memcpy
    - ret_errno
    - netlink_open
    - RTA_DATA
    - ret_set_errno
    - NLMSG_DATA
    - IFLA_RTA
    - RTA_OK
    - nlmsg_alloc
    - netlink_rcv
    - NLMSG_LENGTH
    - RTA_NEXT
    - nlmsg_reserve
    - call_cleaner
    - NLMSG_OK
    - netlink_send
    - NLMSG_NEXT
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int netdev_get_mtu(int ifindex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2057,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2059,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:2063,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2067,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2069,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:2071,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2073,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:2075,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2077,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2082,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2084,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2088,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2089,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2091,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2092,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:2094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - name
    - mtu
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2055
    functionDepth: 4
    functionLinenumber: 2055
    functionLinenumberEnd: 2095
    functionName: lxc_netdev_set_mtu
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 5
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - netlink_transaction
    - nla_put_string
    - strlen
    - nlmsg_alloc
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_set_mtu(const char *name, int mtu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netdev_set_flag
      Src: /src/lxc/src/lxc/network.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2097
    functionDepth: 5
    functionLinenumber: 2097
    functionLinenumberEnd: 2100
    functionName: lxc_netdev_up
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - netdev_set_flag
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_up(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netdev_set_flag
      Src: /src/lxc/src/lxc/network.c:2104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2102
    functionDepth: 5
    functionLinenumber: 2102
    functionLinenumberEnd: 2105
    functionName: lxc_netdev_down
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 2
    functionsReached:
    - netdev_set_flag
    linkageType: ''
    returnType: int
    signature: int lxc_netdev_down(const char *name)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2110,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2112,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:2117,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2121,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2123,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2125,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2127,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:2129,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2131,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:2133,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2135,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2140,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2142,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:2146,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2148,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2150,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2151,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:2153,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2155,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:2157,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2159,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2161,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2163,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2165,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2166,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2168,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2169,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2171,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2172,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2174,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2175,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2177,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2178,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:2180,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:2181,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:2182,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2184,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2185,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2187,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2188,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2190,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2191,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:2193,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 6
    argNames:
    - name1
    - name2
    - pid
    - mtu
    - n_rxqueues
    - n_txqueues
    argTypes:
    - char*
    - char*
    - pid_t
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2107
    functionDepth: 4
    functionLinenumber: 2107
    functionLinenumberEnd: 2194
    functionName: lxc_veth_create
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - nla_end_nested
    - netlink_transaction
    - nla_put_string
    - strlen
    - nlmsg_alloc
    - nla_begin_nested
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: "int lxc_veth_create(const char *name1, const char *name2, pid_t pid,
      unsigned int mtu,\n                    int n_rxqueues, int n_txqueues)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2199,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2201,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:2206,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2210,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2212,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2214,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2216,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:2218,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2220,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:2222,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2224,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:2226,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2228,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2233,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2235,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:2239,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2241,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2243,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2244,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:2246,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2248,1
    - Dst: nla_put_u16
      Src: /src/lxc/src/lxc/network.c:2250,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2251,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:2253,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:2254,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2256,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2257,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2259,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2260,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:2262,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - parent
    - name
    - vlanid
    argTypes:
    - char*
    - char*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2197
    functionDepth: 4
    functionLinenumber: 2197
    functionLinenumberEnd: 2263
    functionName: lxc_vlan_create
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - nla_end_nested
    - netlink_transaction
    - nla_put_string
    - strlen
    - if_nametoindex
    - nlmsg_alloc
    - nla_begin_nested
    - nla_put_u16
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_vlan_create(const char *parent, const char *name, unsigned
      short vlanid)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2267,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2269,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:2274,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2278,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2280,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2282,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2284,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:2286,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2288,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:2290,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2292,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:2294,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2296,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2301,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2303,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:2307,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2309,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2311,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2312,1
    - Dst: nla_begin_nested
      Src: /src/lxc/src/lxc/network.c:2315,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2317,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2319,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2320,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:2322,1
    - Dst: nla_end_nested
      Src: /src/lxc/src/lxc/network.c:2325,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2327,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2328,1
    - Dst: nla_put_string
      Src: /src/lxc/src/lxc/network.c:2330,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2331,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:2333,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - parent
    - name
    - mode
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2265
    functionDepth: 4
    functionLinenumber: 2265
    functionLinenumberEnd: 2334
    functionName: lxc_macvlan_create
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - nla_end_nested
    - netlink_transaction
    - nla_put_string
    - strlen
    - if_nametoindex
    - nlmsg_alloc
    - nla_begin_nested
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int lxc_macvlan_create(const char *parent, const char *name, int mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/network.c:2341,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/network.c:2345,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2345,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:2348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2336
    functionDepth: 1
    functionLinenumber: 2336
    functionLinenumberEnd: 2350
    functionName: proc_sys_net_write
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strlen
    - lxc_write_nointr
    - open
    - close
    linkageType: ''
    returnType: int
    signature: int proc_sys_net_write(const char *path, const char *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:2360,1
    - Dst: proc_sys_net_write
      Src: /src/lxc/src/lxc/network.c:2366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ifname
    - family
    - flag
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2352
    functionDepth: 2
    functionLinenumber: 2352
    functionLinenumberEnd: 2367
    functionName: ip_forwarding_set
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - proc_sys_net_write
    linkageType: ''
    returnType: int
    signature: int ip_forwarding_set(const char *ifname, int family, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_forwarding_set
      Src: /src/lxc/src/lxc/network.c:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - family
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2369
    functionDepth: 3
    functionLinenumber: 2369
    functionLinenumberEnd: 2372
    functionName: lxc_ip_forwarding_on
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - ip_forwarding_set
    linkageType: ''
    returnType: int
    signature: int lxc_ip_forwarding_on(const char *name, int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_forwarding_set
      Src: /src/lxc/src/lxc/network.c:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - family
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2374
    functionDepth: 3
    functionLinenumber: 2374
    functionLinenumberEnd: 2377
    functionName: lxc_ip_forwarding_off
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ip_forwarding_set
    linkageType: ''
    returnType: int
    signature: int lxc_ip_forwarding_off(const char *name, int family)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:2387,1
    - Dst: proc_sys_net_write
      Src: /src/lxc/src/lxc/network.c:2393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ifname
    - family
    - flag
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2379
    functionDepth: 2
    functionLinenumber: 2379
    functionLinenumberEnd: 2394
    functionName: neigh_proxy_set
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - proc_sys_net_write
    linkageType: ''
    returnType: int
    signature: int neigh_proxy_set(const char *ifname, int family, int flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:2405,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:2407,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:2411,1
    - Dst: lxc_read_file_expect
      Src: /src/lxc/src/lxc/network.c:2413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ifname
    - family
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2398
    functionDepth: 3
    functionLinenumber: 2398
    functionLinenumberEnd: 2414
    functionName: lxc_is_ip_neigh_proxy_enabled
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - lxc_read_file_expect
    - strnprintf
    linkageType: ''
    returnType: int
    signature: int lxc_is_ip_neigh_proxy_enabled(const char *ifname, int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: neigh_proxy_set
      Src: /src/lxc/src/lxc/network.c:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - family
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2418
    functionDepth: 3
    functionLinenumber: 2418
    functionLinenumberEnd: 2421
    functionName: lxc_neigh_proxy_on
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - neigh_proxy_set
    linkageType: ''
    returnType: int
    signature: int lxc_neigh_proxy_on(const char *name, int family)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: neigh_proxy_set
      Src: /src/lxc/src/lxc/network.c:2425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - family
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2423
    functionDepth: 3
    functionLinenumber: 2423
    functionLinenumberEnd: 2426
    functionName: lxc_neigh_proxy_off
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - neigh_proxy_set
    linkageType: ''
    returnType: int
    signature: int lxc_neigh_proxy_off(const char *name, int family)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/lxc/src/lxc/network.c:2440,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/network.c:2451,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 2
    argNames:
    - macaddr
    - sockaddr
    argTypes:
    - char*
    - struct sockaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2428
    functionDepth: 0
    functionLinenumber: 2428
    functionLinenumberEnd: 2471
    functionName: lxc_convert_mac
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int lxc_convert_mac(char *macaddr, struct sockaddr *sockaddr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2476,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2478,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:2485,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:2489,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2491,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:2493,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2495,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2500,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2502,1
    - Dst: nla_put_buffer
      Src: /src/lxc/src/lxc/network.c:2509,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2510,1
    - Dst: nla_put_buffer
      Src: /src/lxc/src/lxc/network.c:2512,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2513,1
    - Dst: nla_put_buffer
      Src: /src/lxc/src/lxc/network.c:2515,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2516,1
    - Dst: memcmp
      Src: /src/lxc/src/lxc/network.c:2520,1
    - Dst: memcmp
      Src: /src/lxc/src/lxc/network.c:2521,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2522,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:2524,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 6
    argNames:
    - family
    - ifindex
    - addr
    - bcast
    - acast
    - prefix
    argTypes:
    - int
    - int
    - void*
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2473
    functionDepth: 4
    functionLinenumber: 2473
    functionLinenumberEnd: 2525
    functionName: ip_addr_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - netlink_open
    - nla_put_buffer
    - netlink_transaction
    - memcmp
    - nlmsg_alloc
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: "int ip_addr_add(int family, int ifindex, void *addr, void *bcast,\n\t\t
      \      void *acast, int prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_add
      Src: /src/lxc/src/lxc/network.c:2531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ifindex
    - addr
    - mcast
    - acast
    - prefix
    argTypes:
    - int
    - struct in6_addr*
    - struct in6_addr*
    - struct in6_addr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2527
    functionDepth: 5
    functionLinenumber: 2527
    functionLinenumberEnd: 2532
    functionName: lxc_ipv6_addr_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ip_addr_add
    linkageType: ''
    returnType: int
    signature: "int lxc_ipv6_addr_add(int ifindex, struct in6_addr *addr,\n\t\t      struct
      in6_addr *mcast, struct in6_addr *acast,\n\t\t      int prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_add
      Src: /src/lxc/src/lxc/network.c:2537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ifindex
    - addr
    - bcast
    - prefix
    argTypes:
    - int
    - struct in_addr*
    - struct in_addr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2534
    functionDepth: 5
    functionLinenumber: 2534
    functionLinenumberEnd: 2538
    functionName: lxc_ipv4_addr_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ip_addr_add
    linkageType: ''
    returnType: int
    signature: "int lxc_ipv4_addr_add(int ifindex, struct in_addr *addr, struct in_addr
      *bcast,\n\t\t      int prefix)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:2550,1
    - Dst: IFA_RTA
      Src: /src/lxc/src/lxc/network.c:2551,1
    - Dst: NLMSG_PAYLOAD
      Src: /src/lxc/src/lxc/network.c:2552,1
    - Dst: RTA_OK
      Src: /src/lxc/src/lxc/network.c:2561,1
    - Dst: RTA_PAYLOAD
      Src: /src/lxc/src/lxc/network.c:2571,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/network.c:2578,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/network.c:2583,1
    - Dst: RTA_DATA
      Src: /src/lxc/src/lxc/network.c:2583,1
    - Dst: RTA_NEXT
      Src: /src/lxc/src/lxc/network.c:2587,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - family
    - msg
    - res
    argTypes:
    - int
    - struct nlmsghdr*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2547
    functionDepth: 0
    functionLinenumber: 2547
    functionLinenumberEnd: 2590
    functionName: ifa_get_local_ip
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RTA_DATA
    - NLMSG_PAYLOAD
    - RTA_PAYLOAD
    - NLMSG_DATA
    - IFA_RTA
    - RTA_NEXT
    - RTA_OK
    - malloc
    linkageType: ''
    returnType: int
    signature: int ifa_get_local_ip(int family, struct nlmsghdr *msg, void **res)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2596,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2598,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:2605,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:2609,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2611,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:2613,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2615,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2625,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2627,1
    - Dst: netlink_send
      Src: /src/lxc/src/lxc/network.c:2634,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:2636,1
    - Dst: netlink_rcv
      Src: /src/lxc/src/lxc/network.c:2648,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:2650,1
    - Dst: NLMSG_OK
      Src: /src/lxc/src/lxc/network.c:2658,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:2661,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:2662,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2672,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:2674,1
    - Dst: ifa_get_local_ip
      Src: /src/lxc/src/lxc/network.c:2676,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2677,1
    - Dst: NLMSG_NEXT
      Src: /src/lxc/src/lxc/network.c:2690,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - family
    - ifindex
    - res
    argTypes:
    - int
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2594
    functionDepth: 3
    functionLinenumber: 2594
    functionLinenumberEnd: 2700
    functionName: ip_addr_get
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - netlink_open
    - ret_set_errno
    - NLMSG_DATA
    - ifa_get_local_ip
    - nlmsg_alloc
    - netlink_rcv
    - nlmsg_reserve
    - call_cleaner
    - NLMSG_OK
    - netlink_send
    - NLMSG_NEXT
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int ip_addr_get(int family, int ifindex, void **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_get
      Src: /src/lxc/src/lxc/network.c:2704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ifindex
    - res
    argTypes:
    - int
    - struct in6_addr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2702
    functionDepth: 4
    functionLinenumber: 2702
    functionLinenumberEnd: 2705
    functionName: lxc_ipv6_addr_get
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ip_addr_get
    linkageType: ''
    returnType: int
    signature: int lxc_ipv6_addr_get(int ifindex, struct in6_addr **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_addr_get
      Src: /src/lxc/src/lxc/network.c:2709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ifindex
    - res
    argTypes:
    - int
    - struct in_addr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2707
    functionDepth: 4
    functionLinenumber: 2707
    functionLinenumberEnd: 2710
    functionName: lxc_ipv4_addr_get
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ip_addr_get
    linkageType: ''
    returnType: int
    signature: int lxc_ipv4_addr_get(int ifindex, struct in_addr **res)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2714,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:2716,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:2723,1
    - Dst: nlmsg_alloc
      Src: /src/lxc/src/lxc/network.c:2727,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2729,1
    - Dst: nlmsg_alloc_reserve
      Src: /src/lxc/src/lxc/network.c:2731,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2733,1
    - Dst: nlmsg_reserve
      Src: /src/lxc/src/lxc/network.c:2738,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2740,1
    - Dst: nla_put_buffer
      Src: /src/lxc/src/lxc/network.c:2751,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2752,1
    - Dst: nla_put_u32
      Src: /src/lxc/src/lxc/network.c:2757,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:2758,1
    - Dst: netlink_transaction
      Src: /src/lxc/src/lxc/network.c:2760,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - family
    - ifindex
    - gw
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2712
    functionDepth: 4
    functionLinenumber: 2712
    functionLinenumberEnd: 2761
    functionName: ip_gateway_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - nla_put_u32
    - ret_errno
    - netlink_open
    - nla_put_buffer
    - netlink_transaction
    - nlmsg_alloc
    - nlmsg_reserve
    - call_cleaner
    - nlmsg_alloc_reserve
    linkageType: ''
    returnType: int
    signature: int ip_gateway_add(int family, int ifindex, void *gw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_gateway_add
      Src: /src/lxc/src/lxc/network.c:2765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ifindex
    - gw
    argTypes:
    - int
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2763
    functionDepth: 5
    functionLinenumber: 2763
    functionLinenumberEnd: 2766
    functionName: lxc_ipv4_gateway_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ip_gateway_add
    linkageType: ''
    returnType: int
    signature: int lxc_ipv4_gateway_add(int ifindex, struct in_addr *gw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ip_gateway_add
      Src: /src/lxc/src/lxc/network.c:2770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ifindex
    - gw
    argTypes:
    - int
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2768
    functionDepth: 5
    functionLinenumber: 2768
    functionLinenumberEnd: 2771
    functionName: lxc_ipv6_gateway_add
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ip_gateway_add
    linkageType: ''
    returnType: int
    signature: int lxc_ipv6_gateway_add(int ifindex, struct in6_addr *gw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:2778,1
    - Dst: stat
      Src: /src/lxc/src/lxc/network.c:2783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - bridge
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2772
    functionDepth: 1
    functionLinenumber: 2772
    functionLinenumberEnd: 2788
    functionName: is_ovs_bridge
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - stat
    - strnprintf
    linkageType: ''
    returnType: bool
    signature: bool is_ovs_bridge(const char *bridge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:2802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2798
    functionDepth: 0
    functionLinenumber: 2798
    functionLinenumberEnd: 2804
    functionName: lxc_ovs_delete_port_exec
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int lxc_ovs_delete_port_exec(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_command
      Src: /src/lxc/src/lxc/network.c:2814,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:2817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bridge
    - nic
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2806
    functionDepth: 3
    functionLinenumber: 2806
    functionLinenumberEnd: 2820
    functionName: lxc_ovs_delete_port
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - run_command
    - log_error
    linkageType: ''
    returnType: int
    signature: int lxc_ovs_delete_port(const char *bridge, const char *nic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:2826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2822
    functionDepth: 0
    functionLinenumber: 2822
    functionLinenumberEnd: 2828
    functionName: lxc_ovs_attach_bridge_exec
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int lxc_ovs_attach_bridge_exec(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: run_command
      Src: /src/lxc/src/lxc/network.c:2838,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:2841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bridge
    - nic
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2830
    functionDepth: 3
    functionLinenumber: 2830
    functionLinenumberEnd: 2844
    functionName: lxc_ovs_attach_bridge
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - run_command
    - log_error
    linkageType: ''
    returnType: int
    signature: int lxc_ovs_attach_bridge(const char *bridge, const char *nic)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/network.c:2852,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:2855,1
    - Dst: is_ovs_bridge
      Src: /src/lxc/src/lxc/network.c:2859,1
    - Dst: lxc_ovs_attach_bridge
      Src: /src/lxc/src/lxc/network.c:2860,1
    - Dst: socket
      Src: /src/lxc/src/lxc/network.c:2862,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:2866,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:2868,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/network.c:2874,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:2875,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - bridge
    - ifname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2846
    functionDepth: 4
    functionLinenumber: 2846
    functionLinenumberEnd: 2880
    functionName: lxc_bridge_attach
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - socket
    - is_ovs_bridge
    - close
    - strlcpy
    - if_nametoindex
    - strlen
    - lxc_ovs_attach_bridge
    - ioctl
    linkageType: ''
    returnType: int
    signature: int lxc_bridge_attach(const char *bridge, const char *ifname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/lxc/src/lxc/network.c:2888,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:2892,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/network.c:2896,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/network.c:2901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - veth1
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2882
    functionDepth: 1
    functionLinenumber: 2882
    functionLinenumberEnd: 2906
    functionName: setup_private_host_hw_addr
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - socket
    - strnprintf
    - ioctl
    linkageType: ''
    returnType: int
    signature: int setup_private_host_hw_addr(char *veth1)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:2913,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:2918,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:2920,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:2921,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:2923,1
    - Dst: lxc_ipv4_addr_get
      Src: /src/lxc/src/lxc/network.c:2928,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:2929,1
    - Dst: lxc_ipv6_addr_get
      Src: /src/lxc/src/lxc/network.c:2933,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:2934,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2939
      start: 2908
    functionDepth: 5
    functionLinenumber: 2908
    functionLinenumberEnd: 2939
    functionName: lxc_find_gateway_addresses
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - if_nametoindex
    - is_empty_string
    - lxc_ipv4_addr_get
    - list_for_each_entry
    - log_error_errno
    - lxc_ipv6_addr_get
    linkageType: ''
    returnType: int
    signature: int lxc_find_gateway_addresses(struct lxc_handler *handler)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:2958,1
    - Dst: pipe
      Src: /src/lxc/src/lxc/network.c:2962,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:2964,1
    - Dst: fork
      Src: /src/lxc/src/lxc/network.c:2966,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:2968,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:2969,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:2970,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/network.c:2974,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:2976,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/network.c:2978,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/network.c:2980,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:2981,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:2983,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:2984,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:2987,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:2988,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:2990,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:2992,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:2993,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:2996,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:2998,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:3001,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3002,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3003,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:3004,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:3008,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3011,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:3012,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3016,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/network.c:3018,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3020,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3021,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/network.c:3026,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3027,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3029,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:3031,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/network.c:3034,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3036,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:3043,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:3045,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:3047,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3050,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/network.c:3054,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3056,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/network.c:3058,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3060,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/network.c:3064,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3066,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:3068,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3070,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/network.c:3074,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3076,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/network.c:3078,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3080,1
    - Dst: run_script_argv
      Src: /src/lxc/src/lxc/network.c:3091,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 88
    argCount: 5
    argNames:
    - lxcpath
    - lxcname
    - netdev
    - pid
    - hooks_version
    argTypes:
    - char*
    - char*
    - struct lxc_netdev*
    - pid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3098
      start: 2944
    functionDepth: 4
    functionLinenumber: 2944
    functionLinenumberEnd: 3098
    functionName: lxc_create_network_unpriv_exec
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_safe_int
    - close
    - wait_for_pid
    - INTTYPE_TO_STRLEN
    - log_error
    - strtok_r
    - dup2
    - pipe
    - SYSERROR
    - is_empty_string
    - TRACE
    - run_script_argv
    - execlp
    - strnprintf
    - strlcpy
    - INFO
    - _exit
    - lxc_read_nointr
    - fork
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_create_network_unpriv_exec(const char *lxcpath,\n\t\t\t\t\t
      \ const char *lxcname,\n\t\t\t\t\t  struct lxc_netdev *netdev, pid_t pid,\n\t\t\t\t\t
      \ unsigned int hooks_version)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3110,1
    - Dst: pipe
      Src: /src/lxc/src/lxc/network.c:3112,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3114,1
    - Dst: fork
      Src: /src/lxc/src/lxc/network.c:3116,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3118,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3119,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3120,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3126,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/network.c:3128,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/network.c:3130,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3131,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3133,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:3134,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3137,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3141,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3142,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:3143,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3146,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3147,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:3148,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:3151,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/network.c:3153,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3156,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/network.c:3157,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3160,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/network.c:3162,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3164,1
    - Dst: close
      Src: /src/lxc/src/lxc/network.c:3165,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/network.c:3170,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/network.c:3171,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3173,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 4
    argNames:
    - lxcpath
    - lxcname
    - netdev
    - netns_path
    argTypes:
    - char*
    - char*
    - struct lxc_netdev*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3100
    functionDepth: 1
    functionLinenumber: 3100
    functionLinenumberEnd: 3177
    functionName: lxc_delete_network_unpriv_exec
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - execlp
    - close_prot_errno_disarm
    - pipe
    - close
    - SYSERROR
    - is_empty_string
    - INFO
    - _exit
    - lxc_read_nointr
    - wait_for_pid
    - dup2
    - fork
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_delete_network_unpriv_exec(const char *lxcpath, const char
      *lxcname,\n\t\t\t\t\t  struct lxc_netdev *netdev,\n\t\t\t\t\t  const char *netns_path)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/network.c:3193,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/network.c:3193,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/network.c:3198,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/network.c:3200,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/network.c:3201,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3205,1
    - Dst: lxc_netdev_rename_by_index
      Src: /src/lxc/src/lxc/network.c:3215,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3218,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:3221,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3226,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3233,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3238,1
    - Dst: is_ovs_bridge
      Src: /src/lxc/src/lxc/network.c:3238,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3241,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3245,1
    - Dst: lxc_delete_network_unpriv_exec
      Src: /src/lxc/src/lxc/network.c:3248,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3252,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:3255,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3179
    functionDepth: 5
    functionLinenumber: 3179
    functionLinenumberEnd: 3273
    functionName: lxc_delete_network_unpriv
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - WARN
    - is_ovs_bridge
    - INTTYPE_TO_STRLEN
    - lxc_delete_network_unpriv_exec
    - lxc_netdev_rename_by_index
    - is_empty_string
    - INFO
    - TRACE
    - list_for_each_entry
    - log_debug
    - lxc_raw_getpid
    linkageType: ''
    returnType: bool
    signature: bool lxc_delete_network_unpriv(struct lxc_handler *handler)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:3282,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3284,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/network.c:3288,1
    - Dst: lxc_is_ip_forwarding_enabled
      Src: /src/lxc/src/lxc/network.c:3290,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3291,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/network.c:3295,1
    - Dst: lxc_is_ip_neigh_proxy_enabled
      Src: /src/lxc/src/lxc/network.c:3297,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3298,1
    - Dst: lxc_is_ip_forwarding_enabled
      Src: /src/lxc/src/lxc/network.c:3301,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3302,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3309,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:3312,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3314,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3317,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:3318,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3319,1
    - Dst: lxc_ip_neigh_proxy
      Src: /src/lxc/src/lxc/network.c:3321,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3322,1
    - Dst: lxc_ipv4_dest_add
      Src: /src/lxc/src/lxc/network.c:3326,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3328,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3332,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:3333,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3334,1
    - Dst: lxc_ip_neigh_proxy
      Src: /src/lxc/src/lxc/network.c:3336,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3337,1
    - Dst: lxc_ipv6_dest_add
      Src: /src/lxc/src/lxc/network.c:3341,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3343,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3275
    functionDepth: 6
    functionLinenumber: 3275
    functionLinenumberEnd: 3348
    functionName: lxc_setup_l2proxy
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ipv4_dest_add
    - lxc_ip_neigh_proxy
    - lxc_ipv6_dest_add
    - log_error_errno
    - inet_ntop
    - ret_set_errno
    - if_nametoindex
    - list_for_each_entry
    - lxc_is_ip_forwarding_enabled
    - lxc_is_ip_neigh_proxy_enabled
    - list_empty
    linkageType: ''
    returnType: int
    signature: int lxc_setup_l2proxy(struct lxc_netdev *netdev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:3356,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3357,1
    - Dst: lxc_ipv4_dest_del
      Src: /src/lxc/src/lxc/network.c:3361,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:3363,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3368,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:3369,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3371,1
    - Dst: lxc_ip_neigh_proxy
      Src: /src/lxc/src/lxc/network.c:3373,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - ip
    - link
    - lo_ifindex
    argTypes:
    - struct in_addr*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3350
    functionDepth: 6
    functionLinenumber: 3350
    functionLinenumberEnd: 3381
    functionName: lxc_delete_ipv4_l2proxy
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ip_neigh_proxy
    - lxc_ipv4_dest_del
    - inet_ntop
    - if_nametoindex
    - ret_set_errno
    - is_empty_string
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_delete_ipv4_l2proxy(struct in_addr *ip, char *link, unsigned
      int lo_ifindex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:3389,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3390,1
    - Dst: lxc_ipv6_dest_del
      Src: /src/lxc/src/lxc/network.c:3394,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:3396,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3401,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:3402,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:3404,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3405,1
    - Dst: lxc_ip_neigh_proxy
      Src: /src/lxc/src/lxc/network.c:3408,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ip
    - link
    - lo_ifindex
    argTypes:
    - struct in6_addr*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3383
    functionDepth: 6
    functionLinenumber: 3383
    functionLinenumberEnd: 3416
    functionName: lxc_delete_ipv6_l2proxy
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ip_neigh_proxy
    - inet_ntop
    - ret_set_errno
    - if_nametoindex
    - is_empty_string
    - lxc_ipv6_dest_del
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_delete_ipv6_l2proxy(struct in6_addr *ip, char *link, unsigned
      int lo_ifindex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:3428,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/network.c:3431,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3435,1
    - Dst: lxc_delete_ipv4_l2proxy
      Src: /src/lxc/src/lxc/network.c:3436,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3440,1
    - Dst: lxc_delete_ipv6_l2proxy
      Src: /src/lxc/src/lxc/network.c:3441,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:3446,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3418
    functionDepth: 7
    functionLinenumber: 3418
    functionLinenumberEnd: 3449
    functionName: lxc_delete_l2proxy
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_delete_ipv4_l2proxy
    - if_nametoindex
    - lxc_delete_ipv6_l2proxy
    - list_for_each_entry
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lxc_delete_l2proxy(struct lxc_netdev *netdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3455,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3457,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3460,1
    - Dst: lxc_setup_l2proxy
      Src: /src/lxc/src/lxc/network.c:3461,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3462,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3451
    functionDepth: 7
    functionLinenumber: 3451
    functionLinenumberEnd: 3470
    functionName: lxc_create_network_priv
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - is_empty_string
    - lxc_setup_l2proxy
    - log_error_errno
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int lxc_create_network_priv(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3532,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/network.c:3533,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/network.c:3537,1
    - Dst: lxc_ifname_alnum_case_sensitive
      Src: /src/lxc/src/lxc/network.c:3539,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/network.c:3540,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:3542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3528
    functionDepth: 3
    functionLinenumber: 3528
    functionLinenumberEnd: 3544
    functionName: create_transient_name
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - strlcpy
    - is_empty_string
    - TRACE
    - lxc_ifname_alnum_case_sensitive
    linkageType: ''
    returnType: int
    signature: int create_transient_name(struct lxc_netdev *netdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3546
    functionDepth: 0
    functionLinenumber: 3546
    functionLinenumberEnd: 3561
    functionName: netdev_requires_move
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int netdev_requires_move(const struct lxc_netdev *netdev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/network.c:3568,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3571,1
    - Dst: netdev_requires_move
      Src: /src/lxc/src/lxc/network.c:3575,1
    - Dst: create_transient_name
      Src: /src/lxc/src/lxc/network.c:3578,1
    - Dst: is_wlan
      Src: /src/lxc/src/lxc/network.c:3583,1
    - Dst: lxc_netdev_move_wlan
      Src: /src/lxc/src/lxc/network.c:3586,1
    - Dst: lxc_netdev_move_by_index
      Src: /src/lxc/src/lxc/network.c:3588,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3590,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:3593,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/network.c:3594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3563
    functionDepth: 5
    functionLinenumber: 3563
    functionLinenumberEnd: 3598
    functionName: lxc_network_move_created_netdev_priv
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_netdev_move_by_index
    - netdev_requires_move
    - am_guest_unpriv
    - maybe_empty
    - is_wlan
    - create_transient_name
    - DEBUG
    - list_for_each_entry
    - log_error_errno
    - lxc_netdev_move_wlan
    linkageType: ''
    returnType: int
    signature: int lxc_network_move_created_netdev_priv(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3609
      start: 3600
    functionDepth: 0
    functionLinenumber: 3600
    functionLinenumberEnd: 3609
    functionName: network_requires_advanced_setup
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int network_requires_advanced_setup(int type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3621,1
    - Dst: network_requires_advanced_setup
      Src: /src/lxc/src/lxc/network.c:3622,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3626,1
    - Dst: lxc_net_type_to_str
      Src: /src/lxc/src/lxc/network.c:3627,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:3630,1
    - Dst: lxc_create_network_unpriv_exec
      Src: /src/lxc/src/lxc/network.c:3632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3638
      start: 3613
    functionDepth: 5
    functionLinenumber: 3613
    functionLinenumberEnd: 3638
    functionName: lxc_create_network_unpriv
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_net_type_to_str
    - lxc_create_network_unpriv_exec
    - network_requires_advanced_setup
    - INFO
    - list_for_each_entry
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_create_network_unpriv(struct lxc_handler *handler)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3645,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:3658,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3661,1
    - Dst: lxc_delete_l2proxy
      Src: /src/lxc/src/lxc/network.c:3662,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3663,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/network.c:3671,1
    - Dst: lxc_netdev_rename_by_index
      Src: /src/lxc/src/lxc/network.c:3672,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3674,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:3678,1
    - Dst: lxc_netdev_set_mtu
      Src: /src/lxc/src/lxc/network.c:3684,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3686,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:3689,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3696,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3703,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3711,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3715,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3718,1
    - Dst: is_ovs_bridge
      Src: /src/lxc/src/lxc/network.c:3718,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/network.c:3719,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3721,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:3723,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3724,1
    - Dst: lxc_ovs_delete_port
      Src: /src/lxc/src/lxc/network.c:3725,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3727,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:3729,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:3746,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3753
      start: 3640
    functionDepth: 8
    functionLinenumber: 3640
    functionLinenumberEnd: 3753
    functionName: lxc_delete_network_priv
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - WARN
    - is_ovs_bridge
    - lxc_delete_l2proxy
    - if_nametoindex
    - lxc_netdev_rename_by_index
    - is_empty_string
    - INFO
    - TRACE
    - lxc_ovs_delete_port
    - list_for_each_entry
    - lxc_netdev_delete_by_name
    - lxc_netdev_set_mtu
    linkageType: ''
    returnType: bool
    signature: bool lxc_delete_network_priv(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/network.c:3763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3757
    functionDepth: 1
    functionLinenumber: 3757
    functionLinenumberEnd: 3778
    functionName: lxc_requests_empty_network
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: int
    signature: int lxc_requests_empty_network(struct lxc_handler *handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3772
      start: 3766
    functionDepth: 0
    functionLinenumber: 3766
    functionLinenumberEnd: 3772
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(netdev, netdevs, head)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/network.c:3794,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:3804,1
    - Dst: lxc_preserve_ns
      Src: /src/lxc/src/lxc/network.c:3806,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3808,1
    - Dst: setns
      Src: /src/lxc/src/lxc/network.c:3810,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3812,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3814,1
    - Dst: if_indextoname
      Src: /src/lxc/src/lxc/network.c:3821,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3822,1
    - Dst: lxc_netdev_move_by_index_fd
      Src: /src/lxc/src/lxc/network.c:3829,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/network.c:3831,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:3833,1
    - Dst: setns
      Src: /src/lxc/src/lxc/network.c:3836,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3838,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3841
      start: 3781
    functionDepth: 5
    functionLinenumber: 3781
    functionLinenumberEnd: 3841
    functionName: lxc_restore_phys_nics_to_netns
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - WARN
    - lxc_preserve_ns
    - container_uses_namespace
    - lxc_netdev_move_by_index_fd
    - if_indextoname
    - setns
    - TRACE
    - list_for_each_entry
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_restore_phys_nics_to_netns(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_convert_mac
      Src: /src/lxc/src/lxc/network.c:3850,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3852,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/network.c:3854,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/network.c:3856,1
    - Dst: socket
      Src: /src/lxc/src/lxc/network.c:3858,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/network.c:3862,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/network.c:3864,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:3866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - hwaddr
    - ifname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3869
      start: 3843
    functionDepth: 1
    functionLinenumber: 3843
    functionLinenumberEnd: 3869
    functionName: setup_hw_addr
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - socket
    - memcpy
    - SYSERROR
    - lxc_convert_mac
    - DEBUG
    - ioctl
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int setup_hw_addr(char *hwaddr, const char *ifname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3877,1
    - Dst: lxc_ipv4_addr_add
      Src: /src/lxc/src/lxc/network.c:3878,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3871
    functionDepth: 6
    functionLinenumber: 3871
    functionLinenumberEnd: 3885
    functionName: setup_ipv4_addr
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ipv4_addr_add
    - log_error_errno
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int setup_ipv4_addr(struct lxc_netdev *netdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:3893,1
    - Dst: lxc_ipv6_addr_add
      Src: /src/lxc/src/lxc/network.c:3894,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3902
      start: 3887
    functionDepth: 6
    functionLinenumber: 3887
    functionLinenumberEnd: 3902
    functionName: setup_ipv6_addr
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ipv6_addr_add
    - log_error_errno
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int setup_ipv6_addr(struct lxc_netdev *netdev)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: setup_hw_addr
      Src: /src/lxc/src/lxc/network.c:3910,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3911,1
    - Dst: setup_ipv4_addr
      Src: /src/lxc/src/lxc/network.c:3914,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3915,1
    - Dst: setup_ipv6_addr
      Src: /src/lxc/src/lxc/network.c:3918,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3919,1
    - Dst: lxc_netdev_up
      Src: /src/lxc/src/lxc/network.c:3923,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3925,1
    - Dst: lxc_netdev_up
      Src: /src/lxc/src/lxc/network.c:3928,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3930,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3936,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/network.c:3938,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3939,1
    - Dst: lxc_ipv4_gateway_add
      Src: /src/lxc/src/lxc/network.c:3943,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3945,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:3948,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3949,1
    - Dst: lxc_ipv4_gateway_add
      Src: /src/lxc/src/lxc/network.c:3952,1
    - Dst: lxc_ipv4_dest_add
      Src: /src/lxc/src/lxc/network.c:3959,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3961,1
    - Dst: lxc_ipv4_gateway_add
      Src: /src/lxc/src/lxc/network.c:3963,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3965,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3973,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/network.c:3975,1
    - Dst: IN6_IS_ADDR_LINKLOCAL
      Src: /src/lxc/src/lxc/network.c:3975,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/network.c:3976,1
    - Dst: lxc_ipv6_gateway_add
      Src: /src/lxc/src/lxc/network.c:3980,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3982,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/network.c:3985,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/network.c:3986,1
    - Dst: lxc_ipv6_gateway_add
      Src: /src/lxc/src/lxc/network.c:3989,1
    - Dst: lxc_ipv6_dest_add
      Src: /src/lxc/src/lxc/network.c:3996,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:3998,1
    - Dst: lxc_ipv6_gateway_add
      Src: /src/lxc/src/lxc/network.c:4000,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:4002,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:4007,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 63
    argCount: 1
    argNames:
    - netdev
    argTypes:
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4010
      start: 3904
    functionDepth: 7
    functionLinenumber: 3904
    functionLinenumberEnd: 4010
    functionName: lxc_network_setup_in_child_namespaces_common
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_ipv4_dest_add
    - setup_ipv4_addr
    - lxc_ipv4_gateway_add
    - lxc_ipv6_dest_add
    - lxc_ipv6_gateway_add
    - setup_hw_addr
    - lxc_netdev_up
    - log_error
    - inet_ntop
    - ret_set_errno
    - IN6_IS_ADDR_LINKLOCAL
    - DEBUG
    - setup_ipv6_addr
    - list_empty
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_network_setup_in_child_namespaces_common(struct lxc_netdev
      *netdev)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/network.c:4046,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:4053,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/network.c:4053,1
    - Dst: lxc_network_setup_in_child_namespaces_common
      Src: /src/lxc/src/lxc/network.c:4060,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:4062,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:4064,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:4071,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/network.c:4071,1
    - Dst: lxc_network_setup_in_child_namespaces_common
      Src: /src/lxc/src/lxc/network.c:4076,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:4078,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/network.c:4080,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4084
      start: 4040
    functionDepth: 8
    functionLinenumber: 4040
    functionLinenumberEnd: 4084
    functionName: lxc_setup_network_in_child_namespaces
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - strequal
    - lxc_network_setup_in_child_namespaces_common
    - is_empty_string
    - INFO
    - list_empty
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_setup_network_in_child_namespaces(const struct lxc_conf *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:4053,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/network.c:4053,1
    - Dst: lxc_network_setup_in_child_namespaces_common
      Src: /src/lxc/src/lxc/network.c:4060,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:4062,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4063
      start: 4050
    functionDepth: 8
    functionLinenumber: 4050
    functionLinenumberEnd: 4063
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 36
    functionsReached:
    - is_empty_string
    - log_error_errno
    - lxc_network_setup_in_child_namespaces_common
    - strequal
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(netdev, netdevs, head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/network.c:4071,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/network.c:4071,1
    - Dst: lxc_network_setup_in_child_namespaces_common
      Src: /src/lxc/src/lxc/network.c:4076,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/network.c:4078,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4068
    functionDepth: 8
    functionLinenumber: 4068
    functionLinenumberEnd: 4079
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 36
    functionsReached:
    - is_empty_string
    - log_error_errno
    - lxc_network_setup_in_child_namespaces_common
    - strequal
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(netdev, netdevs, head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:4091,1
    - Dst: network_requires_advanced_setup
      Src: /src/lxc/src/lxc/network.c:4094,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/network.c:4097,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/network.c:4101,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:4105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4109
      start: 4086
    functionDepth: 1
    functionLinenumber: 4086
    functionLinenumberEnd: 4109
    functionName: lxc_network_send_to_child
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_send_nointr
    - TRACE
    - list_for_each_entry
    - network_requires_advanced_setup
    linkageType: ''
    returnType: int
    signature: int lxc_network_send_to_child(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:4116,1
    - Dst: network_requires_advanced_setup
      Src: /src/lxc/src/lxc/network.c:4119,1
    - Dst: lxc_recv_nointr
      Src: /src/lxc/src/lxc/network.c:4122,1
    - Dst: lxc_recv_nointr
      Src: /src/lxc/src/lxc/network.c:4126,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:4130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4111
    functionDepth: 1
    functionLinenumber: 4111
    functionLinenumberEnd: 4134
    functionName: lxc_network_recv_from_parent
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - TRACE
    - lxc_recv_nointr
    - list_for_each_entry
    - network_requires_advanced_setup
    linkageType: ''
    returnType: int
    signature: int lxc_network_recv_from_parent(struct lxc_handler *handler)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/network.c:4149,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/network.c:4156,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:4160,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/network.c:4160,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/network.c:4163,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:4164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4167
      start: 4136
    functionDepth: 1
    functionLinenumber: 4136
    functionLinenumberEnd: 4167
    functionName: lxc_network_send_name_and_ifindex_to_parent
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - lxc_send_nointr
    - TRACE
    - list_empty
    - maybe_empty
    linkageType: ''
    returnType: int
    signature: int lxc_network_send_name_and_ifindex_to_parent(struct lxc_handler
      *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/network.c:4149,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/network.c:4156,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:4160,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/network.c:4160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4145
    functionDepth: 1
    functionLinenumber: 4145
    functionLinenumberEnd: 4161
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 38
    functionsReached:
    - lxc_send_nointr
    - TRACE
    - maybe_empty
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(netdev, netdevs, head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/network.c:4177,1
    - Dst: lxc_recv_nointr
      Src: /src/lxc/src/lxc/network.c:4183,1
    - Dst: lxc_recv_nointr
      Src: /src/lxc/src/lxc/network.c:4191,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/network.c:4195,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/network.c:4195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4199
      start: 4169
    functionDepth: 1
    functionLinenumber: 4169
    functionLinenumberEnd: 4199
    functionName: lxc_network_recv_name_and_ifindex_from_child
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 1
    functionsReached:
    - TRACE
    - lxc_recv_nointr
    - list_for_each_entry
    - maybe_empty
    linkageType: ''
    returnType: int
    signature: int lxc_network_recv_name_and_ifindex_from_child(struct lxc_handler
      *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_expose_namespace_environment
      Src: /src/lxc/src/lxc/network.c:4212,1
    - Dst: lxc_delete_network_priv
      Src: /src/lxc/src/lxc/network.c:4215,1
    - Dst: lxc_delete_network_unpriv
      Src: /src/lxc/src/lxc/network.c:4217,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:4219,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/network.c:4221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4203
    functionDepth: 9
    functionLinenumber: 4203
    functionLinenumberEnd: 4222
    functionName: lxc_delete_network
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - DEBUG
    - lxc_delete_network_unpriv
    - lxc_delete_network_priv
    - lxc_expose_namespace_environment
    linkageType: ''
    returnType: void
    signature: void lxc_delete_network(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/network.c:4229,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/network.c:4230,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/network.c:4231,1
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:4233,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:4239,1
    - Dst: memset
      Src: /src/lxc/src/lxc/network.c:4243,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:4248,1
    - Dst: NLMSG_LENGTH
      Src: /src/lxc/src/lxc/network.c:4251,1
    - Dst: addattr
      Src: /src/lxc/src/lxc/network.c:4258,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:4260,1
    - Dst: addattr
      Src: /src/lxc/src/lxc/network.c:4262,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:4264,1
    - Dst: __netlink_transaction
      Src: /src/lxc/src/lxc/network.c:4266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4226
    functionDepth: 3
    functionLinenumber: 4226
    functionLinenumberEnd: 4267
    functionName: lxc_netns_set_nsid
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - memset
    - netlink_open
    - ret_errno
    - NLMSG_DATA
    - NLMSG_ALIGN
    - NLMSG_LENGTH
    - addattr
    - __netlink_transaction
    - call_cleaner
    linkageType: ''
    returnType: int
    signature: int lxc_netns_set_nsid(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/network.c:4272,1
    - Dst: RTA_OK
      Src: /src/lxc/src/lxc/network.c:4274,1
    - Dst: RTA_NEXT
      Src: /src/lxc/src/lxc/network.c:4282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - tb
    - max
    - rta
    - len
    argTypes:
    - struct rtattr*[]
    - int
    - struct rtattr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4287
      start: 4269
    functionDepth: 0
    functionLinenumber: 4269
    functionLinenumberEnd: 4287
    functionName: parse_rtattr
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - memset
    - RTA_OK
    - RTA_NEXT
    linkageType: ''
    returnType: int
    signature: int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta,
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RTA_DATA
      Src: /src/lxc/src/lxc/network.c:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rta
    argTypes:
    - struct rtattr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4292
      start: 4289
    functionDepth: 0
    functionLinenumber: 4289
    functionLinenumberEnd: 4292
    functionName: rta_getattr_s32
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - RTA_DATA
    linkageType: ''
    returnType: __s32
    signature: __s32 rta_getattr_s32(const struct rtattr *rta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4297
      start: 4295
    functionDepth: 0
    functionLinenumber: 4295
    functionLinenumberEnd: 4297
    functionName: NETNS_RTA
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NETNS_RTA(r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/network.c:4302,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/network.c:4305,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/network.c:4306,1
    - Dst: NLMSG_ALIGN
      Src: /src/lxc/src/lxc/network.c:4307,1
    - Dst: netlink_open
      Src: /src/lxc/src/lxc/network.c:4313,1
    - Dst: memset
      Src: /src/lxc/src/lxc/network.c:4317,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:4322,1
    - Dst: NLMSG_LENGTH
      Src: /src/lxc/src/lxc/network.c:4325,1
    - Dst: addattr
      Src: /src/lxc/src/lxc/network.c:4332,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:4334,1
    - Dst: __netlink_transaction
      Src: /src/lxc/src/lxc/network.c:4336,1
    - Dst: NLMSG_DATA
      Src: /src/lxc/src/lxc/network.c:4340,1
    - Dst: NLMSG_SPACE
      Src: /src/lxc/src/lxc/network.c:4341,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/network.c:4343,1
    - Dst: parse_rtattr
      Src: /src/lxc/src/lxc/network.c:4347,1
    - Dst: NETNS_RTA
      Src: /src/lxc/src/lxc/network.c:4347,1
    - Dst: rta_getattr_s32
      Src: /src/lxc/src/lxc/network.c:4349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4353
      start: 4299
    functionDepth: 3
    functionLinenumber: 4299
    functionLinenumberEnd: 4353
    functionName: lxc_netns_get_nsid
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - memset
    - NLMSG_SPACE
    - netlink_open
    - ret_errno
    - NLMSG_DATA
    - NLMSG_ALIGN
    - rta_getattr_s32
    - NLMSG_LENGTH
    - addattr
    - __netlink_transaction
    - parse_rtattr
    - NETNS_RTA
    - call_cleaner
    linkageType: ''
    returnType: int
    signature: int lxc_netns_get_nsid(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_create_network_priv
      Src: /src/lxc/src/lxc/network.c:4362,1
    - Dst: lxc_network_move_created_netdev_priv
      Src: /src/lxc/src/lxc/network.c:4366,1
    - Dst: lxc_create_network_unpriv
      Src: /src/lxc/src/lxc/network.c:4369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4357
    functionDepth: 8
    functionLinenumber: 4357
    functionLinenumberEnd: 4370
    functionName: lxc_create_network
    functionSourceFile: /src/lxc/src/lxc/network.c
    functionUses: 0
    functionsReached:
    - lxc_create_network_priv
    - lxc_network_move_created_netdev_priv
    - lxc_create_network_unpriv
    linkageType: ''
    returnType: int
    signature: int lxc_create_network(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:26,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/initutils.c:37,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/initutils.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: copy_global_config_value
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - strlen
    - malloc
    linkageType: ''
    returnType: char
    signature: char *copy_global_config_value(char *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/lxc/initutils.c:74,1
    - Dst: getenv
      Src: /src/lxc/src/lxc/initutils.c:75,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/initutils.c:79,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:79,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/initutils.c:80,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:80,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/initutils.c:81,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:81,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/initutils.c:83,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/initutils.c:84,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/initutils.c:85,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/initutils.c:88,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/initutils.c:89,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/initutils.c:90,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/initutils.c:91,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/initutils.c:92,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/initutils.c:100,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:104,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:105,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:106,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:107,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:113,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:114,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:115,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:116,1
    - Dst: fopen_cloexec
      Src: /src/lxc/src/lxc/initutils.c:120,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:121,1
    - Dst: getline
      Src: /src/lxc/src/lxc/initutils.c:127,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/initutils.c:131,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/initutils.c:145,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:152,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/initutils.c:167,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:168,1
    - Dst: copy_global_config_value
      Src: /src/lxc/src/lxc/initutils.c:169,1
    - Dst: remove_trailing_slashes
      Src: /src/lxc/src/lxc/initutils.c:170,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/initutils.c:171,1
    - Dst: copy_global_config_value
      Src: /src/lxc/src/lxc/initutils.c:175,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/initutils.c:181,1
    - Dst: remove_trailing_slashes
      Src: /src/lxc/src/lxc/initutils.c:182,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/initutils.c:183,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/initutils.c:184,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/initutils.c:185,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/initutils.c:186,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/initutils.c:187,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/initutils.c:200,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:202,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:203,1
    - Dst: free
      Src: /src/lxc/src/lxc/initutils.c:204,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 98
    argCount: 1
    argNames:
    - option_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 207
    functionName: lxc_global_config_value
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 8
    functionsReached:
    - strequal
    - fclose
    - free
    - fopen_cloexec
    - move_ptr
    - getenv
    - strlen
    - strstr
    - strchr
    - remove_trailing_slashes
    - geteuid
    - sprintf
    - getline
    - strdup
    - copy_global_config_value
    - malloc
    linkageType: ''
    returnType: char
    signature: char *lxc_global_config_value(const char *option_name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fopen_cloexec
      Src: /src/lxc/src/lxc/initutils.c:232,1
    - Dst: fileno
      Src: /src/lxc/src/lxc/initutils.c:236,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/initutils.c:240,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/initutils.c:251,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/initutils.c:258,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/initutils.c:263,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/initutils.c:269,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/initutils.c:274,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:281,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/initutils.c:283,1
    - Dst: syscall
      Src: /src/lxc/src/lxc/initutils.c:292,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/initutils.c:311,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/initutils.c:311,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/initutils.c:311,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/initutils.c:312,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/initutils.c:312,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/initutils.c:314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - title
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 317
    functionName: setproctitle
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 1
    functionsReached:
    - strlcpy
    - fopen_cloexec
    - strrchr
    - strlen
    - syscall
    - prctl_arg
    - strchr
    - prctl
    - fileno
    - sscanf
    - lxc_read_nointr
    - realloc
    linkageType: ''
    returnType: int
    signature: int setproctitle(char *title)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/initutils.c:326,1
    - Dst: getline
      Src: /src/lxc/src/lxc/initutils.c:330,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/initutils.c:335,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/initutils.c:339,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/initutils.c:348,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/initutils.c:352,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:352,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/initutils.c:353,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/initutils.c:353,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/initutils.c:355,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:358,1
    - Dst: open
      Src: /src/lxc/src/lxc/initutils.c:362,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:364,1
    - Dst: write
      Src: /src/lxc/src/lxc/initutils.c:368,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:370,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 374
    functionName: prevent_forking
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fprintf
    - strlen
    - snprintf
    - strchr
    - lxc_char_left_gc
    - getline
    - lxc_char_right_gc
    - write
    - open
    - fopen
    linkageType: ''
    returnType: void
    signature: void prevent_forking(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/initutils.c:382,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:384,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/initutils.c:388,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:390,1
    - Dst: feof
      Src: /src/lxc/src/lxc/initutils.c:394,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/initutils.c:397,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:398,1
    - Dst: kill_children
      Src: /src/lxc/src/lxc/initutils.c:402,1
    - Dst: kill
      Src: /src/lxc/src/lxc/initutils.c:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - pid
    argTypes:
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 405
    functionName: kill_children
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 1
    functionsReached:
    - fscanf
    - fprintf
    - kill
    - kill_children
    - snprintf
    - feof
    - fopen
    linkageType: ''
    returnType: void
    signature: void kill_children(pid_t pid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: readlink
      Src: /src/lxc/src/lxc/initutils.c:413,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/initutils.c:418,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/initutils.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: remove_self
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 0
    functionsReached:
    - umount2
    - unlink
    - readlink
    linkageType: ''
    returnType: void
    signature: void remove_self(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - sig
    - info
    - context
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 438
    functionName: interrupt_handler
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void interrupt_handler(int sig, siginfo_t *info, void *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/initutils.c:447,1
    - Dst: dirfd
      Src: /src/lxc/src/lxc/initutils.c:451,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/initutils.c:453,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/initutils.c:456,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/initutils.c:459,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/initutils.c:462,1
    - Dst: close
      Src: /src/lxc/src/lxc/initutils.c:469,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/initutils.c:470,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/initutils.c:474,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/initutils.c:478,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 480
    functionName: close_inherited
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 0
    functionsReached:
    - dirfd
    - opendir
    - readdir
    - strcmp
    - lxc_safe_int
    - close
    - closedir
    linkageType: ''
    returnType: int
    signature: int close_inherited(void)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/lxc/src/lxc/initutils.c:493,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:495,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:497,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:499,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:501,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:503,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:505,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:507,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/initutils.c:509,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:511,1
    - Dst: sigfillset
      Src: /src/lxc/src/lxc/initutils.c:513,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:515,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:517,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:519,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:521,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:523,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:525,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:527,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:529,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:531,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:533,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:535,1
    - Dst: sigaction
      Src: /src/lxc/src/lxc/initutils.c:550,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:556,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:557,1
    - Dst: remove_self
      Src: /src/lxc/src/lxc/initutils.c:561,1
    - Dst: fork
      Src: /src/lxc/src/lxc/initutils.c:563,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:565,1
    - Dst: signal
      Src: /src/lxc/src/lxc/initutils.c:576,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:578,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/initutils.c:581,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:584,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:585,1
    - Dst: setsid
      Src: /src/lxc/src/lxc/initutils.c:588,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/initutils.c:590,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/initutils.c:592,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:594,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:595,1
    - Dst: open
      Src: /src/lxc/src/lxc/initutils.c:597,1
    - Dst: dup3
      Src: /src/lxc/src/lxc/initutils.c:599,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:601,1
    - Dst: setproctitle
      Src: /src/lxc/src/lxc/initutils.c:604,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/initutils.c:607,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:609,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/initutils.c:611,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:614,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:615,1
    - Dst: close_range
      Src: /src/lxc/src/lxc/initutils.c:618,1
    - Dst: close_inherited
      Src: /src/lxc/src/lxc/initutils.c:628,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:631,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:632,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/initutils.c:645,1
    - Dst: prevent_forking
      Src: /src/lxc/src/lxc/initutils.c:648,1
    - Dst: kill_children
      Src: /src/lxc/src/lxc/initutils.c:650,1
    - Dst: kill
      Src: /src/lxc/src/lxc/initutils.c:652,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:654,1
    - Dst: alarm
      Src: /src/lxc/src/lxc/initutils.c:656,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/initutils.c:660,1
    - Dst: prevent_forking
      Src: /src/lxc/src/lxc/initutils.c:662,1
    - Dst: kill_children
      Src: /src/lxc/src/lxc/initutils.c:664,1
    - Dst: kill
      Src: /src/lxc/src/lxc/initutils.c:666,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:668,1
    - Dst: kill
      Src: /src/lxc/src/lxc/initutils.c:673,1
    - Dst: wait
      Src: /src/lxc/src/lxc/initutils.c:679,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/initutils.c:688,1
    - Dst: alarm
      Src: /src/lxc/src/lxc/initutils.c:695,1
    - Dst: lxc_error_set_and_log
      Src: /src/lxc/src/lxc/initutils.c:701,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:707,1
    - Dst: exit
      Src: /src/lxc/src/lxc/initutils.c:708,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 159
    argCount: 3
    argNames:
    - argc
    - argv
    - quiet
    argTypes:
    - int
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 709
    functionName: lxc_container_init
    functionSourceFile: /src/lxc/src/lxc/initutils.c
    functionUses: 1
    functionsReached:
    - prevent_forking
    - fprintf
    - wait
    - sigdelset
    - exit
    - setproctitle
    - sigaction
    - ioctl
    - setsid
    - alarm
    - pthread_sigmask
    - open
    - sigfillset
    - kill
    - signal
    - close_range
    - remove_self
    - dup3
    - lxc_raw_getpid
    - close_inherited
    - lxc_error_set_and_log
    - kill_children
    - fork
    - execvp
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn lxc_container_init(int argc, char *const *argv, bool quiet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/lxcseccomp.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - seccomp
    argTypes:
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: lxc_seccomp_close_notifier_fd
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_seccomp_close_notifier_fd(struct lxc_seccomp *seccomp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seccomp
    argTypes:
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: lxc_seccomp_get_notify_fd
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_seccomp_get_notify_fd(struct lxc_seccomp *seccomp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: lxc_seccomp_load
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_seccomp_load(struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: lxc_read_seccomp_config
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_read_seccomp_config(struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/lxcseccomp.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seccomp
    argTypes:
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: lxc_seccomp_free
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_seccomp_free(struct lxc_seccomp *seccomp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/lxcseccomp.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: seccomp_notify_handler
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 0
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int seccomp_notify_handler(int fd, uint32_t events, void *data,\n\t\t\t\t
      \ struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/lxcseccomp.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: seccomp_notify_cleanup_handler
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 0
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int seccomp_notify_cleanup_handler(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: seccomp_conf_init
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void seccomp_conf_init(struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - seccomp
    - descr
    - handler
    argTypes:
    - struct lxc_seccomp*
    - struct lxc_async_descr*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: lxc_seccomp_setup_proxy
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int lxc_seccomp_setup_proxy(struct lxc_seccomp *seccomp,\n\t\t\t\t\t
      \ struct lxc_async_descr *descr,\n\t\t\t\t\t  struct lxc_handler *handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seccomp
    - socket_fd
    argTypes:
    - struct lxc_seccomp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: lxc_seccomp_send_notifier_fd
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int lxc_seccomp_send_notifier_fd(struct lxc_seccomp *seccomp,\n\t\t\t\t\t
      \      int socket_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seccomp
    - socket_fd
    argTypes:
    - struct lxc_seccomp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: lxc_seccomp_recv_notifier_fd
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int lxc_seccomp_recv_notifier_fd(struct lxc_seccomp *seccomp,\n\t\t\t\t\tint
      socket_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - lxcpath
    - seccomp
    argTypes:
    - char*
    - char*
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: lxc_seccomp_add_notifier
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int lxc_seccomp_add_notifier(const char *name, const char *lxcpath,\n\t\t\t\t\t
      \  struct lxc_seccomp *seccomp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seccomp
    argTypes:
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: lxc_seccomp_get_notify_fd
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_seccomp_get_notify_fd(struct lxc_seccomp *seccomp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - seccomp
    argTypes:
    - struct lxc_seccomp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: lxc_seccomp_close_notifier_fd
    functionSourceFile: /src/lxc/src/lxc/lxcseccomp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_seccomp_close_notifier_fd(struct lxc_seccomp *seccomp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: LIST_HEAD_INIT
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: LIST_HEAD
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: INIT_LIST_HEAD
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void INIT_LIST_HEAD(struct list_head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - new
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: __list_add
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_add(struct list_head *new,\n\t\t\t      struct list_head
      *prev,\n\t\t\t      struct list_head *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: list_add
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add(struct list_head *new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: list_add_tail
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add_tail(struct list_head *new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: __list_del
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __list_del(struct list_head * prev, struct list_head * next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/lxc/src/lxc/hlist.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: __list_del_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - __list_del
    linkageType: ''
    returnType: void
    signature: void __list_del_entry(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del_entry
      Src: /src/lxc/src/lxc/hlist.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: list_del
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 21
    functionsReached:
    - __list_del_entry
    linkageType: ''
    returnType: void
    signature: void list_del(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next::next
      Src: /src/lxc/src/lxc/hlist.h:139,1
    - Dst: prev::prev
      Src: /src/lxc/src/lxc/hlist.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: list_replace
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - prev::prev
    - next::next
    linkageType: ''
    returnType: void
    signature: "void list_replace(struct list_head *old,\n\t\t\t\tstruct list_head
      *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/hlist.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: list_replace_init
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: "void list_replace_init(struct list_head *old,\n\t\t\t\t     struct
      list_head *new)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/lxc/src/lxc/hlist.h:168,1
    - Dst: list_replace
      Src: /src/lxc/src/lxc/hlist.h:169,1
    - Dst: list_add
      Src: /src/lxc/src/lxc/hlist.h:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - entry1
    - entry2
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: list_swap
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - list_del
    - list_add
    - list_replace
    linkageType: ''
    returnType: void
    signature: "void list_swap(struct list_head *entry1,\n\t\t\t     struct list_head
      *entry2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del_entry
      Src: /src/lxc/src/lxc/hlist.h:181,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/hlist.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: list_del_init
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - __list_del_entry
    linkageType: ''
    returnType: void
    signature: void list_del_init(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del_entry
      Src: /src/lxc/src/lxc/hlist.h:192,1
    - Dst: list_add
      Src: /src/lxc/src/lxc/hlist.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: list_move
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - __list_del_entry
    - list_add
    linkageType: ''
    returnType: void
    signature: void list_move(struct list_head *list, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del_entry
      Src: /src/lxc/src/lxc/hlist.h:204,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/hlist.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: list_move_tail
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - __list_del_entry
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void list_move_tail(struct list_head *list,\n\t\t\t\t  struct list_head
      *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - head
    - first
    - last
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: list_bulk_move_tail
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void list_bulk_move_tail(struct list_head *head,\n\t\t\t\t       struct
      list_head *first,\n\t\t\t\t       struct list_head *last)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: list_is_first
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int list_is_first(const struct list_head *list,\n\t\t\t\t\tconst struct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: list_is_last
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int list_is_last(const struct list_head *list,\n\t\t\t\tconst struct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: list_empty
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int list_empty(const struct list_head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/hlist.h:270,1
    - Dst: list_move_tail
      Src: /src/lxc/src/lxc/hlist.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: list_rotate_left
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - list_move_tail
    - list_empty
    linkageType: ''
    returnType: void
    signature: void list_rotate_left(struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_move_tail
      Src: /src/lxc/src/lxc/hlist.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: list_rotate_to_front
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - list_move_tail
    linkageType: ''
    returnType: void
    signature: "void list_rotate_to_front(struct list_head *list,\n\t\t\t\t\tstruct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/hlist.h:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: list_is_singular
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: int
    signature: int list_is_singular(const struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - list
    - head
    - entry
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: __list_cut_position
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_cut_position(struct list_head *list,\n\t\tstruct list_head
      *head, struct list_head *entry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/hlist.h:332,1
    - Dst: list_is_singular
      Src: /src/lxc/src/lxc/hlist.h:334,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/hlist.h:338,1
    - Dst: __list_cut_position
      Src: /src/lxc/src/lxc/hlist.h:340,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - list
    - head
    - entry
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 341
    functionName: list_cut_position
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 1
    functionsReached:
    - __list_cut_position
    - INIT_LIST_HEAD
    - list_empty
    - list_is_singular
    linkageType: ''
    returnType: void
    signature: "void list_cut_position(struct list_head *list,\n\t\tstruct list_head
      *head, struct list_head *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/hlist.h:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - list
    - head
    - entry
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 371
    functionName: list_cut_before
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: "void list_cut_before(struct list_head *list,\n\t\t\t\t   struct list_head
      *head,\n\t\t\t\t   struct list_head *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - list
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: __list_splice
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_splice(const struct list_head *list,\n\t\t\t\t struct
      list_head *prev,\n\t\t\t\t struct list_head *next)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/hlist.h:395,1
    - Dst: __list_splice
      Src: /src/lxc/src/lxc/hlist.h:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: list_splice
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 1
    functionsReached:
    - __list_splice
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void list_splice(const struct list_head *list,\n\t\t\t\tstruct list_head
      *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/hlist.h:407,1
    - Dst: __list_splice
      Src: /src/lxc/src/lxc/hlist.h:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: list_splice_tail
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - __list_splice
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void list_splice_tail(struct list_head *list,\n\t\t\t\tstruct list_head
      *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/hlist.h:421,1
    - Dst: __list_splice
      Src: /src/lxc/src/lxc/hlist.h:422,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/hlist.h:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: list_splice_init
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - __list_splice
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void list_splice_init(struct list_head *list,\n\t\t\t\t    struct
      list_head *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/hlist.h:438,1
    - Dst: __list_splice
      Src: /src/lxc/src/lxc/hlist.h:439,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/hlist.h:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: list_splice_tail_init
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - __list_splice
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void list_splice_tail_init(struct list_head *list,\n\t\t\t\t\t struct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: list_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 463
    functionName: list_first_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_first_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: list_last_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_last_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: list_first_entry_or_null
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_first_entry_or_null(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: list_next_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_next_entry(pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: list_prev_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_prev_entry(pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: list_for_each
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: list_for_each_continue
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_continue(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 530
    functionName: list_for_each_prev
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_prev(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: list_for_each_safe
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_safe(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: list_for_each_prev_safe
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_prev_safe(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 560
    functionName: list_entry_is_head
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_entry_is_head(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: list_for_each_entry_reverse
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_reverse(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: list_prepare_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_prepare_entry(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: list_for_each_entry_continue
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_continue(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: list_for_each_entry_continue_reverse
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_continue_reverse(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 633
    functionName: list_for_each_entry_from
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_from(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: list_for_each_entry_from_reverse
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_from_reverse(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 659
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: list_for_each_entry_safe_continue
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_continue(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 690
    functionName: list_for_each_entry_safe_from
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_from(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 706
    functionName: list_for_each_entry_safe_reverse
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_reverse(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 721
    functionName: list_safe_reset_next
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_safe_reset_next(pos, n, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 731
    functionName: HLIST_HEAD
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: INIT_HLIST_HEAD
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_HLIST_HEAD(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 736
    functionName: INIT_HLIST_NODE
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void INIT_HLIST_NODE(struct hlist_node *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 749
    functionName: hlist_unhashed
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlist_unhashed(const struct hlist_node *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: hlist_unhashed_lockless
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlist_unhashed_lockless(const struct hlist_node *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: hlist_empty
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlist_empty(const struct hlist_head *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 777
    functionName: __hlist_del
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __hlist_del(struct hlist_node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hlist_del
      Src: /src/lxc/src/lxc/hlist.h:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 791
    functionName: hlist_del
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 1
    functionsReached:
    - __hlist_del
    linkageType: ''
    returnType: void
    signature: void hlist_del(struct hlist_node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlist_unhashed
      Src: /src/lxc/src/lxc/hlist.h:801,1
    - Dst: __hlist_del
      Src: /src/lxc/src/lxc/hlist.h:802,1
    - Dst: INIT_HLIST_NODE
      Src: /src/lxc/src/lxc/hlist.h:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: hlist_del_init
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - __hlist_del
    - hlist_unhashed
    - INIT_HLIST_NODE
    linkageType: ''
    returnType: void
    signature: void hlist_del_init(struct hlist_node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - h
    argTypes:
    - struct hlist_node*
    - struct hlist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 823
    functionName: hlist_add_head
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - n
    - next
    argTypes:
    - struct hlist_node*
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 837
    functionName: hlist_add_before
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hlist_add_before(struct hlist_node *n,\n\t\t\t\t    struct hlist_node
      *next)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - prev
    argTypes:
    - struct hlist_node*
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 853
    functionName: hlist_add_behind
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hlist_add_behind(struct hlist_node *n,\n\t\t\t\t    struct hlist_node
      *prev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 866
    functionName: hlist_add_fake
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlist_add_fake(struct hlist_node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 875
    functionName: hlist_fake
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hlist_fake(struct hlist_node *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - n
    - h
    argTypes:
    - struct hlist_node*
    - struct hlist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: hlist_is_singular_node
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hlist_is_singular_node(struct hlist_node *n, struct hlist_head
      *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::first
      Src: /src/lxc/src/lxc/hlist.h:903,1
    - Dst: first::first
      Src: /src/lxc/src/lxc/hlist.h:904,1
    - Dst: first::first
      Src: /src/lxc/src/lxc/hlist.h:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct hlist_head*
    - struct hlist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 906
    functionName: hlist_move_list
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached:
    - first::first
    linkageType: ''
    returnType: void
    signature: "void hlist_move_list(struct hlist_head *old,\n\t\t\t\t   struct hlist_head
      *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 909
    functionName: hlist_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 912
    functionName: hlist_for_each
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 916
    functionName: hlist_for_each_safe
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_safe(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 921
    functionName: hlist_entry_safe
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_entry_safe(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 932
    functionName: hlist_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: hlist_for_each_entry_continue
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry_continue(pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 951
    functionName: hlist_for_each_entry_from
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry_from(pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 963
    functionName: hlist_for_each_entry_safe
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry_safe(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 974
    functionName: list_len
    functionSourceFile: /src/lxc/src/lxc/hlist.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_len(pos, head, member)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_rundir
      Src: /src/lxc/src/lxc/monitor.c:46,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/monitor.c:51,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/monitor.c:53,1
    - Dst: free
      Src: /src/lxc/src/lxc/monitor.c:54,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/monitor.c:57,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/monitor.c:59,1
    - Dst: free
      Src: /src/lxc/src/lxc/monitor.c:60,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/monitor.c:64,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/monitor.c:66,1
    - Dst: free
      Src: /src/lxc/src/lxc/monitor.c:67,1
    - Dst: free
      Src: /src/lxc/src/lxc/monitor.c:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - lxcpath
    - fifo_path
    - fifo_path_sz
    - do_mkdirp
    argTypes:
    - char*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: lxc_monitor_fifo_name
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - free
    - lxc_mkdir_p
    - get_rundir
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int lxc_monitor_fifo_name(const char *lxcpath, char *fifo_path, size_t
      fifo_path_sz,\n\t\t\t  int do_mkdirp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/lxc/src/lxc/monitor.c:79,1
    - Dst: lxc_monitor_fifo_name
      Src: /src/lxc/src/lxc/monitor.c:81,1
    - Dst: open
      Src: /src/lxc/src/lxc/monitor.c:88,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/monitor.c:96,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/monitor.c:100,1
    - Dst: close
      Src: /src/lxc/src/lxc/monitor.c:101,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/monitor.c:105,1
    - Dst: close
      Src: /src/lxc/src/lxc/monitor.c:107,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:108,1
    - Dst: close
      Src: /src/lxc/src/lxc/monitor.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - msg
    - lxcpath
    argTypes:
    - struct lxc_msg*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 113
    functionName: lxc_monitor_fifo_send
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - fcntl
    - close
    - BUILD_BUG_ON
    - lxc_monitor_fifo_name
    - SYSERROR
    - SYSWARN
    - lxc_write_nointr
    - open
    linkageType: ''
    returnType: void
    signature: void lxc_monitor_fifo_send(struct lxc_msg *msg, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/monitor.c:120,1
    - Dst: lxc_monitor_fifo_send
      Src: /src/lxc/src/lxc/monitor.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - name
    - state
    - lxcpath
    argTypes:
    - char*
    - lxc_state_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: lxc_monitor_send_state
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 1
    functionsReached:
    - strlcpy
    - lxc_monitor_fifo_send
    linkageType: ''
    returnType: void
    signature: "void lxc_monitor_send_state(const char *name, lxc_state_t state,\n\t\t\t
      \   const char *lxcpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/monitor.c:129,1
    - Dst: lxc_monitor_fifo_send
      Src: /src/lxc/src/lxc/monitor.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - name
    - exit_code
    - lxcpath
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: lxc_monitor_send_exit_code
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - lxc_monitor_fifo_send
    linkageType: ''
    returnType: void
    signature: "void lxc_monitor_send_exit_code(const char *name, int exit_code,\n\t\t\t\tconst
      char *lxcpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/lxc/monitor.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: lxc_monitor_close
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int lxc_monitor_close(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/monitor.c:158,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/monitor.c:162,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/monitor.c:163,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/monitor.c:164,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/monitor.c:166,1
    - Dst: fnv_64a_buf
      Src: /src/lxc/src/lxc/monitor.c:176,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/monitor.c:177,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/monitor.c:179,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/monitor.c:185,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/monitor.c:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - lxcpath
    - addr
    argTypes:
    - char*
    - struct sockaddr_un*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 191
    functionName: lxc_monitor_sock_name
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - memset
    - strnprintf
    - strlen
    - INFO
    - fnv_64a_buf
    - ERROR
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int lxc_monitor_sock_name(const char *lxcpath, struct sockaddr_un *addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitor_sock_name
      Src: /src/lxc/src/lxc/monitor.c:200,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/monitor.c:203,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/monitor.c:203,1
    - Dst: lxc_abstract_unix_connect
      Src: /src/lxc/src/lxc/monitor.c:206,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:210,1
    - Dst: usleep
      Src: /src/lxc/src/lxc/monitor.c:211,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:215,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - lxcpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: lxc_monitor_open
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - lxc_monitor_sock_name
    - usleep
    - lxc_abstract_unix_connect
    - strlen
    - SYSERROR
    - DEBUG
    linkageType: ''
    returnType: int
    signature: int lxc_monitor_open(const char *lxcpath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/lxc/src/lxc/monitor.c:227,1
    - Dst: recv
      Src: /src/lxc/src/lxc/monitor.c:239,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:241,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - fds
    - nfds
    - msg
    - timeout
    argTypes:
    - struct pollfd*
    - nfds_t
    - struct lxc_msg*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 251
    functionName: lxc_monitor_read_fdset
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - poll
    - recv
    linkageType: ''
    returnType: int
    signature: "int lxc_monitor_read_fdset(struct pollfd *fds, nfds_t nfds, struct
      lxc_msg *msg,\n\t\t\t   int timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitor_read_fdset
      Src: /src/lxc/src/lxc/monitor.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - msg
    - timeout
    argTypes:
    - int
    - struct lxc_msg*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: lxc_monitor_read_timeout
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - lxc_monitor_read_fdset
    linkageType: ''
    returnType: int
    signature: int lxc_monitor_read_timeout(int fd, struct lxc_msg *msg, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitor_read_timeout
      Src: /src/lxc/src/lxc/monitor.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - msg
    argTypes:
    - int
    - struct lxc_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: lxc_monitor_read
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - lxc_monitor_read_timeout
    linkageType: ''
    returnType: int
    signature: int lxc_monitor_read(int fd, struct lxc_msg *msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/monitor.c:278,1
    - Dst: fork
      Src: /src/lxc/src/lxc/monitor.c:289,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:291,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/monitor.c:296,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/monitor.c:298,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/monitor.c:301,1
    - Dst: pipe
      Src: /src/lxc/src/lxc/monitor.c:305,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:306,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/monitor.c:307,1
    - Dst: fork
      Src: /src/lxc/src/lxc/monitor.c:310,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:312,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/monitor.c:313,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/monitor.c:317,1
    - Dst: close
      Src: /src/lxc/src/lxc/monitor.c:320,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/monitor.c:327,1
    - Dst: close
      Src: /src/lxc/src/lxc/monitor.c:331,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/monitor.c:333,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/monitor.c:334,1
    - Dst: setsid
      Src: /src/lxc/src/lxc/monitor.c:337,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:338,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/monitor.c:339,1
    - Dst: lxc_check_inherited
      Src: /src/lxc/src/lxc/monitor.c:342,1
    - Dst: null_stdfds
      Src: /src/lxc/src/lxc/monitor.c:343,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:344,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/monitor.c:345,1
    - Dst: close
      Src: /src/lxc/src/lxc/monitor.c:348,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/monitor.c:350,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/monitor.c:352,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/monitor.c:353,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/monitor.c:356,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/monitor.c:358,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/monitor.c:359,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/monitor.c:361,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 1
    argNames:
    - lxcpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 362
    functionName: lxc_monitord_spawn
    functionSourceFile: /src/lxc/src/lxc/monitor.c
    functionUses: 0
    functionsReached:
    - setsid
    - waitpid
    - strnprintf
    - pipe
    - INTTYPE_TO_STRLEN
    - close
    - SYSERROR
    - lxc_check_inherited
    - _exit
    - DEBUG
    - lxc_read_nointr
    - null_stdfds
    - execvp
    - fork
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_spawn(const char *lxcpath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:82,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/criu.c:84,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/criu.c:86,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - directory
    - output
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: load_tty_major_minor
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - strnprintf
    - ret_errno
    - lxc_read_from_file
    linkageType: ''
    returnType: int
    signature: int load_tty_major_minor(char *directory, char *output, int len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/criu.c:107,1
    - Dst: memset
      Src: /src/lxc/src/lxc/criu.c:108,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/criu.c:110,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/criu.c:114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 141
    functionName: cmp_version
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - memset
    - sscanf
    linkageType: ''
    returnType: int
    signature: int cmp_version(const char *v1, const char *v2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/criu.c:152,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/criu.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct criu_exec_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: put_criu_exec_args
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void put_criu_exec_args(struct criu_exec_args *args)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/criu.c:162,1
    - Dst: struct cgroup_ops*::criu_escape
      Src: /src/lxc/src/lxc/criu.c:180,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:181,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:191,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:191,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:204,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:218,1
    - Dst: load_tty_major_minor
      Src: /src/lxc/src/lxc/criu.c:226,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:227,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/criu.c:233,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:235,1
    - Dst: struct cgroup_ops*::criu_num_hierarchies
      Src: /src/lxc/src/lxc/criu.c:238,1
    - Dst: struct cgroup_ops*::criu_num_hierarchies
      Src: /src/lxc/src/lxc/criu.c:239,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/criu.c:247,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:249,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/criu.c:251,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/criu.c:253,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:255,1
    - Dst: on_path
      Src: /src/lxc/src/lxc/criu.c:268,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:270,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:272,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:273,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:274,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:275,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:276,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:277,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:278,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:279,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:280,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:281,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:282,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:283,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:284,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:285,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:286,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:287,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:288,1
    - Dst: struct cgroup_ops*::criu_num_hierarchies
      Src: /src/lxc/src/lxc/criu.c:290,1
    - Dst: struct cgroup_ops*::criu_get_hierarchies
      Src: /src/lxc/src/lxc/criu.c:295,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:296,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:303,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:303,1
    - Dst: lxc_cmd_get_limit_cgroup_path
      Src: /src/lxc/src/lxc/criu.c:304,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:306,1
    - Dst: struct cgroup_ops*::get_limit_cgroup
      Src: /src/lxc/src/lxc/criu.c:310,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:312,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/criu.c:314,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:316,1
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/lxc/criu.c:319,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:321,1
    - Dst: free_move_ptr
      Src: /src/lxc/src/lxc/criu.c:322,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/criu.c:325,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:327,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/criu.c:329,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/criu.c:331,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/criu.c:332,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:335,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:337,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:338,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:342,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:345,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:346,1
    - Dst: make_anonymous_mount_file
      Src: /src/lxc/src/lxc/criu.c:349,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:352,1
    - Dst: getmntent_r
      Src: /src/lxc/src/lxc/criu.c:354,1
    - Dst: parse_mntopts_legacy
      Src: /src/lxc/src/lxc/criu.c:359,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:360,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:366,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:367,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:369,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:371,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:373,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:374,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:377,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:377,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/criu.c:379,1
    - Dst: struct criu_opts*::c::init_pid
      Src: /src/lxc/src/lxc/criu.c:382,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:384,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:386,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:388,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:390,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:391,1
    - Dst: lxc_cmd_get_limit_cgroup_path
      Src: /src/lxc/src/lxc/criu.c:393,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:397,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/criu.c:399,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:400,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:402,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:404,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/criu.c:407,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:408,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:410,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:411,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:414,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:415,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:417,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:418,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:422,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:423,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:424,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:428,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:429,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:430,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:431,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:432,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:436,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/criu.c:441,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:443,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:445,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:446,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:450,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:451,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:452,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:455,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:456,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:457,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:458,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:462,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:464,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:466,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:468,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:469,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:472,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:473,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:475,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:476,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:482,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:484,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:486,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:488,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:489,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/criu.c:492,1
    - Dst: cmp_version
      Src: /src/lxc/src/lxc/criu.c:497,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/criu.c:508,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:510,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:512,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:514,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:525,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:527,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:530,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:532,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:535,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/criu.c:537,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:541,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:543,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:545,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/criu.c:547,1
    - Dst: cmp_version
      Src: /src/lxc/src/lxc/criu.c:551,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/criu.c:552,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/criu.c:554,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/criu.c:555,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:557,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/criu.c:559,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/criu.c:561,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:569,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:573,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:575,1
    - Dst: DECLARE_ARG
      Src: /src/lxc/src/lxc/criu.c:576,1
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/criu.c:584,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:587,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:589,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/criu.c:594,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/criu.c:600,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:601,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/criu.c:603,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/criu.c:604,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:606,1
    - Dst: execv
      Src: /src/lxc/src/lxc/criu.c:609,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 281
    argCount: 3
    argNames:
    - cgroup_ops
    - conf
    - opts
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    - struct criu_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 611
    functionName: exec_criu
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - make_anonymous_mount_file
    - syserror_set
    - close
    - struct cgroup_ops*::criu_get_hierarchies
    - on_path
    - execv
    - INTTYPE_TO_STRLEN
    - struct criu_opts*::c::init_pid
    - getmntent_r
    - struct cgroup_ops*::get_limit_cgroup
    - lxc_string_join
    - dup2
    - lxc_path_simplify
    - WARN
    - strequal
    - list_len
    - pure_unified_layout
    - DECLARE_ARG
    - is_empty_string
    - TRACE
    - sprintf
    - parse_mntopts_legacy
    - struct cgroup_ops*::criu_num_hierarchies
    - zalloc
    - cmp_version
    - lxc_cmd_get_limit_cgroup_path
    - free_move_ptr
    - strcmp
    - strnprintf
    - ret_errno
    - strlcpy
    - struct cgroup_ops*::criu_escape
    - load_tty_major_minor
    - list_for_each_entry
    - call_cleaner
    - strdup
    - log_error_errno
    - lxc_log_trace
    linkageType: ''
    returnType: int
    signature: "int exec_criu(struct cgroup_ops *cgroup_ops, struct lxc_conf *conf,\n\t\t
      \    struct criu_opts *opts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: DECLARE_ARG
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ARG(arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/lxc/criu.c:654,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:656,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:678,1
    - Dst: null_stdfds
      Src: /src/lxc/src/lxc/criu.c:680,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/criu.c:682,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:683,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:684,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/criu.c:687,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/criu.c:694,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - features_to_check
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 709
    functionName: __criu_check_feature
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 1
    functionsReached:
    - SYSERROR
    - INFO
    - _exit
    - wait_for_pid
    - null_stdfds
    - fork
    - execvp
    linkageType: ''
    returnType: bool
    signature: bool __criu_check_feature(uint64_t *features_to_check)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/lxc/src/lxc/criu.c:728,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:729,1
    - Dst: fork
      Src: /src/lxc/src/lxc/criu.c:733,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:735,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:742,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:744,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/criu.c:745,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:746,1
    - Dst: on_path
      Src: /src/lxc/src/lxc/criu.c:748,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:750,1
    - Dst: execv
      Src: /src/lxc/src/lxc/criu.c:752,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:753,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:759,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/criu.c:760,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:761,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:762,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/criu.c:766,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:768,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/criu.c:772,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/criu.c:774,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/criu.c:778,1
    - Dst: fgetc
      Src: /src/lxc/src/lxc/criu.c:781,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/criu.c:784,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/criu.c:787,1
    - Dst: fgetc
      Src: /src/lxc/src/lxc/criu.c:790,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/criu.c:793,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/criu.c:796,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/criu.c:803,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:805,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/criu.c:811,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:812,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:813,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 1
    argNames:
    - version
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 816
    functionName: criu_version_ok
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pipe
    - close
    - fclose
    - fscanf
    - fgetc
    - free
    - SYSERROR
    - on_path
    - _exit
    - execv
    - wait_for_pid
    - dup2
    - fork
    - ERROR
    - fdopen
    - malloc
    linkageType: ''
    returnType: bool
    signature: bool criu_version_ok(char **version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/lxc/criu.c:824,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:825,1
    - Dst: criu_version_ok
      Src: /src/lxc/src/lxc/criu.c:829,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/criu.c:833,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:842,1
    - Dst: lxc_net_type_to_str
      Src: /src/lxc/src/lxc/criu.c:842,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - c
    - criu_version
    argTypes:
    - struct lxc_container*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 852
    functionName: criu_ok
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - lxc_net_type_to_str
    - free
    - geteuid
    - list_for_each_entry
    - ERROR
    - criu_version_ok
    linkageType: ''
    returnType: bool
    signature: bool criu_ok(struct lxc_container *c, char **criu_version)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: container_mem_lock
      Src: /src/lxc/src/lxc/criu.c:860,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/criu.c:863,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:869,1
    - Dst: lxc_ifname_alnum_case_sensitive
      Src: /src/lxc/src/lxc/criu.c:875,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/criu.c:878,1
    - Dst: container_mem_unlock
      Src: /src/lxc/src/lxc/criu.c:885,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 887
    functionName: restore_net_info
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - container_mem_lock
    - strlcpy
    - container_mem_unlock
    - lxc_ifname_alnum_case_sensitive
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: bool restore_net_info(struct lxc_container *c)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/criu.c:907,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/criu.c:909,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:910,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:911,1
    - Dst: lxc_init_handler
      Src: /src/lxc/src/lxc/criu.c:914,1
    - Dst: lxc_init
      Src: /src/lxc/src/lxc/criu.c:918,1
    - Dst: struct cgroup_ops*::monitor_create
      Src: /src/lxc/src/lxc/criu.c:922,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:923,1
    - Dst: struct cgroup_ops*::monitor_enter
      Src: /src/lxc/src/lxc/criu.c:927,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:928,1
    - Dst: struct cgroup_ops*::monitor_delegate_controllers
      Src: /src/lxc/src/lxc/criu.c:932,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:933,1
    - Dst: struct cgroup_ops*::payload_create
      Src: /src/lxc/src/lxc/criu.c:937,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:938,1
    - Dst: restore_net_info
      Src: /src/lxc/src/lxc/criu.c:942,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:943,1
    - Dst: resolve_clone_flags
      Src: /src/lxc/src/lxc/criu.c:947,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:949,1
    - Dst: pipe2
      Src: /src/lxc/src/lxc/criu.c:953,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:954,1
    - Dst: fork
      Src: /src/lxc/src/lxc/criu.c:958,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:967,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:970,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/criu.c:973,1
    - Dst: lxc_storage_prepare
      Src: /src/lxc/src/lxc/criu.c:976,1
    - Dst: rootfs_is_blockdev
      Src: /src/lxc/src/lxc/criu.c:984,1
    - Dst: lxc_setup_rootfs_prepare_root
      Src: /src/lxc/src/lxc/criu.c:985,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/criu.c:989,1
    - Dst: mount
      Src: /src/lxc/src/lxc/criu.c:992,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:993,1
    - Dst: mount
      Src: /src/lxc/src/lxc/criu.c:997,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/criu.c:998,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/criu.c:1015,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1017,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/criu.c:1023,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1024,1
    - Dst: exec_criu
      Src: /src/lxc/src/lxc/criu.c:1031,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1033,1
    - Dst: umount
      Src: /src/lxc/src/lxc/criu.c:1034,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/criu.c:1035,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1040,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/criu.c:1043,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1045,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/criu.c:1049,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/criu.c:1052,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/criu.c:1055,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1057,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1065,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/criu.c:1065,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:1068,1
    - Dst: syscall
      Src: /src/lxc/src/lxc/criu.c:1068,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1070,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/criu.c:1074,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1076,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/criu.c:1080,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/criu.c:1081,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1083,1
    - Dst: lxc_set_state
      Src: /src/lxc/src/lxc/criu.c:1087,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1088,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1093,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/criu.c:1093,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1097,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/criu.c:1099,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1100,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1104,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:1113,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/criu.c:1115,1
    - Dst: setproctitle
      Src: /src/lxc/src/lxc/criu.c:1117,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/criu.c:1119,1
    - Dst: lxc_poll
      Src: /src/lxc/src/lxc/criu.c:1121,1
    - Dst: lxc_abort
      Src: /src/lxc/src/lxc/criu.c:1123,1
    - Dst: lxc_end
      Src: /src/lxc/src/lxc/criu.c:1124,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:1125,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1130,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1132,1
    - Dst: lxc_end
      Src: /src/lxc/src/lxc/criu.c:1134,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/criu.c:1145,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1146,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1147,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:1150,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 206
    argCount: 4
    argNames:
    - c
    - status_pipe
    - opts
    - criu_version
    argTypes:
    - struct lxc_container*
    - int
    - struct migrate_opts*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 892
    functionDepth: 4
    functionLinenumber: 892
    functionLinenumberEnd: 1151
    functionName: do_restore
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - close
    - struct cgroup_ops*::monitor_create
    - setproctitle
    - struct cgroup_ops*::monitor_delegate_controllers
    - rootfs_is_blockdev
    - ERROR
    - lxc_abort
    - ioctl
    - lxc_poll
    - fopen
    - struct cgroup_ops*::monitor_enter
    - mount
    - struct cgroup_ops*::payload_create
    - lxc_end
    - open
    - lxc_storage_prepare
    - WTERMSIG
    - waitpid
    - fcntl
    - SYSERROR
    - exec_criu
    - syscall
    - WEXITSTATUS
    - rmdir
    - umount
    - resolve_clone_flags
    - lxc_write_nointr
    - mkdir
    - strnprintf
    - fscanf
    - fclose
    - unshare
    - pipe2
    - lxc_init_handler
    - INFO
    - _exit
    - lxc_set_state
    - lxc_init
    - restore_net_info
    - lxc_read_nointr
    - fork
    - lxc_setup_rootfs_prepare_root
    linkageType: ''
    returnType: void
    signature: void do_restore(struct lxc_container *c, int status_pipe, struct migrate_opts
      *opts, char *criu_version)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/criu.c:1160,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:1165,1
    - Dst: struct lxc_container*::init_pid
      Src: /src/lxc/src/lxc/criu.c:1165,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1167,1
    - Dst: stat
      Src: /src/lxc/src/lxc/criu.c:1171,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1173,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:1177,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1179,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:1183,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1187,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/criu.c:1191,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1193,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/criu.c:1197,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/criu.c:1198,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - directory
    - c
    - tty_id
    - len
    argTypes:
    - char*
    - struct lxc_container*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1202
    functionName: save_tty_major_minor
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - stat
    - strnprintf
    - strequal
    - fclose
    - fprintf
    - SYSERROR
    - struct lxc_container*::init_pid
    - ERROR
    - fopen
    linkageType: ''
    returnType: int
    signature: int save_tty_major_minor(char *directory, struct lxc_container *c,
      char *tty_id, int len)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: criu_ok
      Src: /src/lxc/src/lxc/criu.c:1212,1
    - Dst: pipe
      Src: /src/lxc/src/lxc/criu.c:1215,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1217,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1218,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/criu.c:1222,1
    - Dst: fork
      Src: /src/lxc/src/lxc/criu.c:1225,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1227,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1235,1
    - Dst: cgroup_init
      Src: /src/lxc/src/lxc/criu.c:1237,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1239,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:1240,1
    - Dst: save_tty_major_minor
      Src: /src/lxc/src/lxc/criu.c:1251,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1253,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:1254,1
    - Dst: exec_criu
      Src: /src/lxc/src/lxc/criu.c:1258,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1260,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1261,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/criu.c:1262,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1268,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/criu.c:1270,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1272,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1273,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1274,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/criu.c:1278,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1279,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/criu.c:1281,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/criu.c:1290,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/criu.c:1291,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1292,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/criu.c:1292,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/lxc/criu.c:1297,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1298,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/criu.c:1298,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1301,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1306,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1308,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1312,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1313,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/criu.c:1314,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1315,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 86
    argCount: 3
    argNames:
    - c
    - mode
    - opts
    argTypes:
    - struct lxc_container*
    - char*
    - struct migrate_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1205
    functionDepth: 4
    functionLinenumber: 1205
    functionLinenumberEnd: 1317
    functionName: do_dump
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - criu_ok
    - WIFSIGNALED
    - close
    - free
    - lxc_mkdir_p
    - save_tty_major_minor
    - WTERMSIG
    - waitpid
    - pipe
    - SYSERROR
    - exec_criu
    - WEXITSTATUS
    - rmdir
    - _exit
    - lxc_read_nointr
    - cgroup_init
    - fork
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool do_dump(struct lxc_container *c, char *mode, struct migrate_opts
      *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_dump
      Src: /src/lxc/src/lxc/criu.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - opts
    argTypes:
    - struct lxc_container*
    - struct migrate_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1319
    functionDepth: 5
    functionLinenumber: 1319
    functionLinenumberEnd: 1322
    functionName: __criu_pre_dump
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 1
    functionsReached:
    - do_dump
    linkageType: ''
    returnType: bool
    signature: bool __criu_pre_dump(struct lxc_container *c, struct migrate_opts *opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/criu.c:1329,1
    - Dst: access
      Src: /src/lxc/src/lxc/criu.c:1333,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1334,1
    - Dst: do_dump
      Src: /src/lxc/src/lxc/criu.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - opts
    argTypes:
    - struct lxc_container*
    - struct migrate_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1324
    functionDepth: 5
    functionLinenumber: 1324
    functionLinenumberEnd: 1339
    functionName: __criu_dump
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 1
    functionsReached:
    - strnprintf
    - do_dump
    - ERROR
    - access
    linkageType: ''
    returnType: bool
    signature: bool __criu_dump(struct lxc_container *c, struct migrate_opts *opts)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/lxc/criu.c:1348,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1349,1
    - Dst: pipe
      Src: /src/lxc/src/lxc/criu.c:1353,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1354,1
    - Dst: criu_ok
      Src: /src/lxc/src/lxc/criu.c:1358,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1359,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1360,1
    - Dst: fork
      Src: /src/lxc/src/lxc/criu.c:1364,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1366,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1367,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1368,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1373,1
    - Dst: do_restore
      Src: /src/lxc/src/lxc/criu.c:1375,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1378,1
    - Dst: free
      Src: /src/lxc/src/lxc/criu.c:1379,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/criu.c:1381,1
    - Dst: close
      Src: /src/lxc/src/lxc/criu.c:1382,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1384,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/criu.c:1392,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/criu.c:1392,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/criu.c:1397,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/criu.c:1398,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - c
    - opts
    argTypes:
    - struct lxc_container*
    - struct migrate_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1341
    functionDepth: 5
    functionLinenumber: 1341
    functionLinenumberEnd: 1400
    functionName: __criu_restore
    functionSourceFile: /src/lxc/src/lxc/criu.c
    functionUses: 1
    functionsReached:
    - WIFEXITED
    - criu_ok
    - pipe
    - close
    - do_restore
    - free
    - geteuid
    - WEXITSTATUS
    - lxc_read_nointr
    - wait_for_pid
    - fork
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool __criu_restore(struct lxc_container *c, struct migrate_opts *opts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/lxc/src/lxc/terminal.c:42,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/terminal.c:45,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:47,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/terminal.c:51,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:53,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/terminal.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - srcfd
    - dstfd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: lxc_terminal_winsz
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - WARN
    - ioctl
    - DEBUG
    - isatty
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_winsz(int srcfd, int dstfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_winsz
      Src: /src/lxc/src/lxc/terminal.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ts
    argTypes:
    - struct lxc_terminal_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: lxc_terminal_winch
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_winsz
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_winch(struct lxc_terminal_state *ts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/terminal.c:73,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:75,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/terminal.c:80,1
    - Dst: lxc_terminal_winch
      Src: /src/lxc/src/lxc/terminal.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - fd
    - events
    - cbdata
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: lxc_terminal_signalfd_cb
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - ERROR
    - DEBUG
    - lxc_read_nointr
    - lxc_terminal_winch
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_signalfd_cb(int fd, uint32_t events, void *cbdata,\n\t\t\t
      \    struct lxc_async_descr *descr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/terminal.c:97,1
    - Dst: memset
      Src: /src/lxc/src/lxc/terminal.c:101,1
    - Dst: sigemptyset
      Src: /src/lxc/src/lxc/terminal.c:106,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:108,1
    - Dst: isatty
      Src: /src/lxc/src/lxc/terminal.c:112,1
    - Dst: sigaddset
      Src: /src/lxc/src/lxc/terminal.c:113,1
    - Dst: SYSNOTICE
      Src: /src/lxc/src/lxc/terminal.c:115,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/terminal.c:117,1
    - Dst: sigaddset
      Src: /src/lxc/src/lxc/terminal.c:121,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:123,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/terminal.c:127,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:129,1
    - Dst: signalfd
      Src: /src/lxc/src/lxc/terminal.c:133,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:135,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/terminal.c:136,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/terminal.c:139,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/terminal.c:140,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/terminal.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - srcfd
    - dstfd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 143
    functionName: lxc_terminal_signal_init
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - memset
    - WARN
    - sigaddset
    - move_ptr
    - SYSERROR
    - isatty
    - INFO
    - signalfd
    - TRACE
    - sigemptyset
    - move_fd
    - SYSNOTICE
    - pthread_sigmask
    - malloc
    linkageType: ''
    returnType: struct lxc_terminal_state
    signature: struct lxc_terminal_state *lxc_terminal_signal_init(int srcfd, int
      dstfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/terminal.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: lxc_terminal_signal_sigmask_safe_blocked
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - pthread_sigmask
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_signal_sigmask_safe_blocked(struct lxc_terminal *terminal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:172,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/terminal.c:174,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/terminal.c:175,1
    - Dst: free
      Src: /src/lxc/src/lxc/terminal.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: lxc_terminal_signal_fini
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - free
    - SYSWARN
    - pthread_sigmask
    - close
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_signal_fini(struct lxc_terminal *terminal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/terminal.c:188,1
    - Dst: ftruncate
      Src: /src/lxc/src/lxc/terminal.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: lxc_terminal_truncate_log_file
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - ftruncate
    - lxc_unpriv
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_truncate_log_file(struct lxc_terminal *terminal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/terminal.c:204,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/terminal.c:205,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/terminal.c:207,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:211,1
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/terminal.c:213,1
    - Dst: rename
      Src: /src/lxc/src/lxc/terminal.c:213,1
    - Dst: lxc_terminal_create_log_file
      Src: /src/lxc/src/lxc/terminal.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 218
    functionName: lxc_terminal_rotate_log_file
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - lxc_unpriv
    - close
    - strlen
    - lxc_terminal_create_log_file
    - rename
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_rotate_log_file(struct lxc_terminal *terminal)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:235,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/terminal.c:238,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:240,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:255,1
    - Dst: lxc_terminal_truncate_log_file
      Src: /src/lxc/src/lxc/terminal.c:264,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:269,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:272,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:277,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:282,1
    - Dst: lxc_terminal_rotate_log_file
      Src: /src/lxc/src/lxc/terminal.c:293,1
    - Dst: lxc_terminal_truncate_log_file
      Src: /src/lxc/src/lxc/terminal.c:295,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:310,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:311,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:319,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - terminal
    - buf
    - bytes_read
    argTypes:
    - struct lxc_terminal*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 324
    functionName: lxc_terminal_write_log_file
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - WARN
    - SYSERROR
    - fstat
    - lxc_terminal_rotate_log_file
    - lxc_terminal_truncate_log_file
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_write_log_file(struct lxc_terminal *terminal, char
      *buf,\n\t\t\t\t       int bytes_read)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/terminal.c:331,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:341,1
    - Dst: lxc_ringbuf_write
      Src: /src/lxc/src/lxc/terminal.c:345,1
    - Dst: lxc_terminal_write_log_file
      Src: /src/lxc/src/lxc/terminal.c:349,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:352,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/terminal.c:356,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/terminal.c:360,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 363
    functionName: lxc_terminal_ptx_io
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_ringbuf_write
    - WARN
    - TRACE
    - lxc_terminal_write_log_file
    - lxc_read_nointr
    - SYSTRACE
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_ptx_io(struct lxc_terminal *terminal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/terminal.c:370,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:378,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: lxc_terminal_peer_io
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - WARN
    - lxc_write_nointr
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_peer_io(struct lxc_terminal *terminal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_ptx_io
      Src: /src/lxc/src/lxc/terminal.c:391,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/terminal.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 398
    functionName: lxc_terminal_ptx_io_handler
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_ptx_io
    - log_info
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_ptx_io_handler(int fd, uint32_t events, void *data,\n\t\t\t\t
      \      struct lxc_async_descr *descr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_peer_io
      Src: /src/lxc/src/lxc/terminal.c:406,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/terminal.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 413
    functionName: lxc_terminal_peer_io_handler
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_peer_io
    - log_info
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_peer_io_handler(int fd, uint32_t events, void *data,\n\t\t\t\t\tstruct
      lxc_async_descr *descr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fd_make_nonblocking
      Src: /src/lxc/src/lxc/terminal.c:420,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/terminal.c:421,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/terminal.c:423,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:428,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/terminal.c:436,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 448
    functionName: lxc_terminal_mainloop_add_peer
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - WARN
    - lxc_mainloop_add_handler
    - fd_make_nonblocking
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_mainloop_add_peer(struct lxc_terminal *terminal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/lxc/src/lxc/terminal.c:456,1
    - Dst: fd_make_nonblocking
      Src: /src/lxc/src/lxc/terminal.c:460,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/terminal.c:461,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/terminal.c:463,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:468,1
    - Dst: lxc_terminal_mainloop_add_peer
      Src: /src/lxc/src/lxc/terminal.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - descr
    - terminal
    argTypes:
    - struct lxc_async_descr*
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 450
    functionDepth: 5
    functionLinenumber: 450
    functionLinenumberEnd: 478
    functionName: lxc_terminal_mainloop_add
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - fd_make_nonblocking
    - lxc_terminal_mainloop_add_peer
    - INFO
    - lxc_mainloop_add_handler
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_mainloop_add(struct lxc_async_descr *descr,\n\t\t\t
      \     struct lxc_terminal *terminal)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/lxc/src/lxc/terminal.c:485,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:486,1
    - Dst: tcgetattr
      Src: /src/lxc/src/lxc/terminal.c:491,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:493,1
    - Dst: signal
      Src: /src/lxc/src/lxc/terminal.c:502,1
    - Dst: signal
      Src: /src/lxc/src/lxc/terminal.c:503,1
    - Dst: tcsetattr
      Src: /src/lxc/src/lxc/terminal.c:523,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - fd
    - oldtios
    argTypes:
    - int
    - struct termios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 530
    functionName: lxc_setup_tios
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - tcgetattr
    - isatty
    - signal
    - tcsetattr
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lxc_setup_tios(int fd, struct termios *oldtios)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_signal_fini
      Src: /src/lxc/src/lxc/terminal.c:534,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:536,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 547
    functionName: lxc_terminal_peer_proxy_free
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_signal_fini
    - close
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_peer_proxy_free(struct lxc_terminal *terminal)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:557,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/terminal.c:562,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:567,1
    - Dst: openpty
      Src: /src/lxc/src/lxc/terminal.c:574,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:577,1
    - Dst: ttyname_r
      Src: /src/lxc/src/lxc/terminal.c:581,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:584,1
    - Dst: lxc_fd_cloexec
      Src: /src/lxc/src/lxc/terminal.c:588,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:590,1
    - Dst: lxc_fd_cloexec
      Src: /src/lxc/src/lxc/terminal.c:594,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:596,1
    - Dst: lxc_setup_tios
      Src: /src/lxc/src/lxc/terminal.c:600,1
    - Dst: lxc_terminal_signal_init
      Src: /src/lxc/src/lxc/terminal.c:604,1
    - Dst: lxc_terminal_mainloop_add_peer
      Src: /src/lxc/src/lxc/terminal.c:611,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/terminal.c:615,1
    - Dst: lxc_terminal_peer_proxy_free
      Src: /src/lxc/src/lxc/terminal.c:620,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 2
    argNames:
    - terminal
    - sockfd
    argTypes:
    - struct lxc_terminal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 549
    functionDepth: 5
    functionLinenumber: 549
    functionLinenumberEnd: 622
    functionName: lxc_terminal_peer_proxy_alloc
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - NOTICE
    - lxc_setup_tios
    - lxc_fd_cloexec
    - ttyname_r
    - lxc_terminal_signal_init
    - SYSERROR
    - lxc_terminal_mainloop_add_peer
    - openpty
    - lxc_terminal_peer_proxy_free
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_peer_proxy_alloc(struct lxc_terminal *terminal,\n\t\t\t\t\t
      int sockfd)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_peer_proxy_alloc
      Src: /src/lxc/src/lxc/terminal.c:634,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - conf
    - sockfd
    - ttyreq
    argTypes:
    - struct lxc_conf*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 624
    functionDepth: 6
    functionLinenumber: 624
    functionLinenumberEnd: 671
    functionName: lxc_terminal_allocate
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_peer_proxy_alloc
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_allocate(struct lxc_conf *conf, int sockfd, int *ttyreq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_mainloop_del_handler
      Src: /src/lxc/src/lxc/terminal.c:685,1
    - Dst: lxc_terminal_peer_proxy_free
      Src: /src/lxc/src/lxc/terminal.c:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - conf
    - fd
    argTypes:
    - struct lxc_conf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 687
    functionName: lxc_terminal_free
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_peer_proxy_free
    - lxc_mainloop_del_handler
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_free(struct lxc_conf *conf, int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/terminal.c:700,1
    - Dst: open
      Src: /src/lxc/src/lxc/terminal.c:700,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/terminal.c:704,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:708,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/terminal.c:711,1
    - Dst: isatty
      Src: /src/lxc/src/lxc/terminal.c:713,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:714,1
    - Dst: lxc_terminal_signal_init
      Src: /src/lxc/src/lxc/terminal.c:718,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:721,1
    - Dst: lxc_terminal_winsz
      Src: /src/lxc/src/lxc/terminal.c:725,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/terminal.c:727,1
    - Dst: lxc_setup_tios
      Src: /src/lxc/src/lxc/terminal.c:731,1
    - Dst: free
      Src: /src/lxc/src/lxc/terminal.c:738,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:742,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 748
    functionName: lxc_terminal_peer_default
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - SYSDEBUG
    - lxc_unpriv
    - WARN
    - lxc_setup_tios
    - close
    - free
    - lxc_terminal_signal_init
    - SYSERROR
    - isatty
    - lxc_terminal_winsz
    - DEBUG
    - ERROR
    - open
    - malloc
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_peer_default(struct lxc_terminal *terminal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ringbuf_used
      Src: /src/lxc/src/lxc/terminal.c:761,1
    - Dst: lxc_terminal_truncate_log_file
      Src: /src/lxc/src/lxc/terminal.c:765,1
    - Dst: lxc_ringbuf_get_read_addr
      Src: /src/lxc/src/lxc/terminal.c:773,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 779
    functionName: lxc_terminal_write_ringbuffer
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_truncate_log_file
    - lxc_ringbuf_used
    - lxc_write_nointr
    - lxc_ringbuf_get_read_addr
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_write_ringbuffer(struct lxc_terminal *terminal)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_write_ringbuffer
      Src: /src/lxc/src/lxc/terminal.c:785,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/terminal.c:787,1
    - Dst: tcsetattr
      Src: /src/lxc/src/lxc/terminal.c:790,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/terminal.c:792,1
    - Dst: free
      Src: /src/lxc/src/lxc/terminal.c:794,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:798,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:802,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:806,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:812,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 814
    functionName: lxc_terminal_delete
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 2
    functionsReached:
    - WARN
    - close
    - free
    - SYSWARN
    - tcsetattr
    - lxc_terminal_write_ringbuffer
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_delete(struct lxc_terminal *terminal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ringbuf_release
      Src: /src/lxc/src/lxc/terminal.c:833,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/terminal.c:838,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/terminal.c:847,1
    - Dst: lxc_ringbuf_release
      Src: /src/lxc/src/lxc/terminal.c:850,1
    - Dst: lxc_ringbuf_create
      Src: /src/lxc/src/lxc/terminal.c:853,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:855,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/terminal.c:859,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 861
    functionName: lxc_terminal_create_ringbuf
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_ringbuf_create
    - TRACE
    - ERROR
    - lxc_ringbuf_release
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_create_ringbuf(struct lxc_terminal *terminal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_unpriv
      Src: /src/lxc/src/lxc/terminal.c:872,1
    - Dst: open
      Src: /src/lxc/src/lxc/terminal.c:872,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:874,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/terminal.c:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 880
    functionName: lxc_terminal_create_log_file
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - lxc_unpriv
    - SYSERROR
    - DEBUG
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_create_log_file(struct lxc_terminal *terminal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/terminal.c:886,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/terminal.c:889,1
    - Dst: userns_exec_mapped_root
      Src: /src/lxc/src/lxc/terminal.c:893,1
    - Dst: userns_exec_mapped_root
      Src: /src/lxc/src/lxc/terminal.c:895,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/terminal.c:897,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/terminal.c:898,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/terminal.c:900,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/terminal.c:901,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - c
    - terminal
    argTypes:
    - struct lxc_conf*
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 904
    functionName: lxc_terminal_map_ids
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - log_error
    - userns_exec_mapped_root
    - is_empty_string
    - TRACE
    - list_empty
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_map_ids(struct lxc_conf *c, struct lxc_terminal *terminal)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: openpty
      Src: /src/lxc/src/lxc/terminal.c:910,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:912,1
    - Dst: lxc_terminal_map_ids
      Src: /src/lxc/src/lxc/terminal.c:916,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:918,1
    - Dst: ttyname_r
      Src: /src/lxc/src/lxc/terminal.c:922,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:924,1
    - Dst: lxc_fd_cloexec
      Src: /src/lxc/src/lxc/terminal.c:928,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:930,1
    - Dst: lxc_fd_cloexec
      Src: /src/lxc/src/lxc/terminal.c:934,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:936,1
    - Dst: lxc_terminal_peer_default
      Src: /src/lxc/src/lxc/terminal.c:940,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:942,1
    - Dst: lxc_terminal_delete
      Src: /src/lxc/src/lxc/terminal.c:949,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - conf
    - terminal
    argTypes:
    - struct lxc_conf*
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 906
    functionDepth: 6
    functionLinenumber: 906
    functionLinenumberEnd: 951
    functionName: lxc_terminal_create_foreign
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_terminal_map_ids
    - lxc_fd_cloexec
    - ttyname_r
    - SYSERROR
    - openpty
    - lxc_terminal_delete
    - lxc_terminal_peer_default
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_create_foreign(struct lxc_conf *conf, struct lxc_terminal
      *terminal)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/terminal.c:971,1
    - Dst: open_beneath
      Src: /src/lxc/src/lxc/terminal.c:974,1
    - Dst: systrace
      Src: /src/lxc/src/lxc/terminal.c:977,1
    - Dst: syswarn
      Src: /src/lxc/src/lxc/terminal.c:979,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/terminal.c:983,1
    - Dst: syswarn
      Src: /src/lxc/src/lxc/terminal.c:986,1
    - Dst: same_device
      Src: /src/lxc/src/lxc/terminal.c:988,1
    - Dst: syswarn
      Src: /src/lxc/src/lxc/terminal.c:989,1
    - Dst: unlockpt
      Src: /src/lxc/src/lxc/terminal.c:993,1
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/terminal.c:995,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/terminal.c:997,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/terminal.c:1001,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/terminal.c:1004,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/terminal.c:1007,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/terminal.c:1013,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/terminal.c:1016,1
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/terminal.c:1018,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/terminal.c:1026,1
    - Dst: fdstr
      Src: /src/lxc/src/lxc/terminal.c:1026,1
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/terminal.c:1029,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/terminal.c:1032,1
    - Dst: fdstr
      Src: /src/lxc/src/lxc/terminal.c:1032,1
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/terminal.c:1035,1
    - Dst: same_file_lax
      Src: /src/lxc/src/lxc/terminal.c:1038,1
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/terminal.c:1039,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/terminal.c:1042,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/terminal.c:1043,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 5
    argNames:
    - devpts_fd
    - ret_ptx
    - ret_pty
    - ret_pty_nr
    - require_tiocgptpeer
    argTypes:
    - int
    - int*
    - int*
    - int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 1046
    functionName: lxc_devpts_terminal
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 2
    functionsReached:
    - ret_errno
    - open_beneath
    - unlockpt
    - syswarn_set
    - systrace
    - open_at
    - fdstr
    - SYSWARN
    - move_fd
    - same_file_lax
    - same_device
    - SYSTRACE
    - syswarn
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int lxc_devpts_terminal(int devpts_fd, int *ret_ptx, int *ret_pty,\n\t\t\tint
      *ret_pty_nr, bool require_tiocgptpeer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wants_console
      Src: /src/lxc/src/lxc/terminal.c:1053,1
    - Dst: lxc_devpts_terminal
      Src: /src/lxc/src/lxc/terminal.c:1061,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/terminal.c:1064,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/terminal.c:1066,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/terminal.c:1069,1
    - Dst: lxc_terminal_map_ids
      Src: /src/lxc/src/lxc/terminal.c:1071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1048
    functionDepth: 6
    functionLinenumber: 1048
    functionLinenumberEnd: 1072
    functionName: lxc_terminal_parent
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - syserror
    - strnprintf
    - lxc_terminal_map_ids
    - wants_console
    - lxc_devpts_terminal
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_parent(struct lxc_conf *conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_devpts_fd
      Src: /src/lxc/src/lxc/terminal.c:1080,1
    - Dst: sysinfo
      Src: /src/lxc/src/lxc/terminal.c:1082,1
    - Dst: lxc_devpts_terminal
      Src: /src/lxc/src/lxc/terminal.c:1084,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/terminal.c:1089,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/terminal.c:1092,1
    - Dst: lxc_terminal_peer_default
      Src: /src/lxc/src/lxc/terminal.c:1094,1
    - Dst: lxc_terminal_delete
      Src: /src/lxc/src/lxc/terminal.c:1096,1
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/terminal.c:1097,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - name
    - lxcpath
    - terminal
    argTypes:
    - char*
    - char*
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1074
    functionDepth: 4
    functionLinenumber: 1074
    functionLinenumberEnd: 1101
    functionName: lxc_terminal_create_native
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - syserror
    - strnprintf
    - syswarn_set
    - lxc_terminal_delete
    - sysinfo
    - lxc_terminal_peer_default
    - lxc_cmd_get_devpts_fd
    - lxc_devpts_terminal
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_create_native(const char *name, const char *lxcpath,\n\t\t\t\t
      \     struct lxc_terminal *terminal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_create_native
      Src: /src/lxc/src/lxc/terminal.c:1106,1
    - Dst: lxc_terminal_create_foreign
      Src: /src/lxc/src/lxc/terminal.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - name
    - lxcpath
    - conf
    - terminal
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1103
    functionDepth: 7
    functionLinenumber: 1103
    functionLinenumberEnd: 1110
    functionName: lxc_terminal_create
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - lxc_terminal_create_native
    - lxc_terminal_create_foreign
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_create(const char *name, const char *lxcpath,\n\t\t\tstruct
      lxc_conf *conf, struct lxc_terminal *terminal)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/terminal.c:1117,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/terminal.c:1118,1
    - Dst: lxc_terminal_peer_default
      Src: /src/lxc/src/lxc/terminal.c:1120,1
    - Dst: lxc_terminal_create_log_file
      Src: /src/lxc/src/lxc/terminal.c:1124,1
    - Dst: lxc_terminal_create_ringbuf
      Src: /src/lxc/src/lxc/terminal.c:1128,1
    - Dst: lxc_terminal_delete
      Src: /src/lxc/src/lxc/terminal.c:1135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1137
    functionName: lxc_terminal_setup
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - strequal
    - log_info
    - lxc_terminal_create_log_file
    - lxc_terminal_delete
    - lxc_terminal_peer_default
    - lxc_terminal_create_ringbuf
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_setup(struct lxc_conf *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/lxc/src/lxc/terminal.c:1143,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/terminal.c:1146,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/terminal.c:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - duplicate
    - original
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1153
    functionName: __terminal_dup2
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - dup2
    - SYSERROR
    - isatty
    linkageType: ''
    returnType: bool
    signature: bool __terminal_dup2(int duplicate, int original)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __terminal_dup2
      Src: /src/lxc/src/lxc/terminal.c:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1168
    functionName: lxc_terminal_set_stdfds
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - __terminal_dup2
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_set_stdfds(int fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/terminal.c:1180,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:1197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - fd
    - events
    - cbdata
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1202
    functionName: lxc_terminal_stdin_cb
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_write_nointr
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_stdin_cb(int fd, uint32_t events, void *cbdata,\n\t\t\t
      \ struct lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/terminal.c:1214,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/terminal.c:1218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - fd
    - events
    - cbdata
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1223
    functionName: lxc_terminal_ptx_cb
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached:
    - lxc_write_nointr
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: "int lxc_terminal_ptx_cb(int fd, uint32_t events, void *cbdata,\n\t\t\t
      \  struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_tty_fd
      Src: /src/lxc/src/lxc/terminal.c:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - ttynum
    - ptxfd
    argTypes:
    - struct lxc_container*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1228
    functionName: lxc_terminal_getfd
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_get_tty_fd
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_getfd(struct lxc_container *c, int *ttynum, int *ptxfd)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_tty_fd
      Src: /src/lxc/src/lxc/terminal.c:1243,1
    - Dst: setsid
      Src: /src/lxc/src/lxc/terminal.c:1247,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/terminal.c:1249,1
    - Dst: lxc_terminal_signal_init
      Src: /src/lxc/src/lxc/terminal.c:1251,1
    - Dst: isatty
      Src: /src/lxc/src/lxc/terminal.c:1260,1
    - Dst: lxc_terminal_winsz
      Src: /src/lxc/src/lxc/terminal.c:1262,1
    - Dst: lxc_terminal_winsz
      Src: /src/lxc/src/lxc/terminal.c:1263,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/terminal.c:1265,1
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/terminal.c:1268,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:1270,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/terminal.c:1275,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:1280,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/terminal.c:1285,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:1290,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/terminal.c:1294,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:1299,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/terminal.c:1304,1
    - Dst: lxc_setup_tios
      Src: /src/lxc/src/lxc/terminal.c:1313,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/terminal.c:1318,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/terminal.c:1320,1
    - Dst: tcsetattr
      Src: /src/lxc/src/lxc/terminal.c:1328,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/terminal.c:1330,1
    - Dst: lxc_mainloop_close
      Src: /src/lxc/src/lxc/terminal.c:1334,1
    - Dst: lxc_terminal_signal_fini
      Src: /src/lxc/src/lxc/terminal.c:1337,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:1340,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:1341,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 6
    argNames:
    - c
    - ttynum
    - stdinfd
    - stdoutfd
    - stderrfd
    - escape
    argTypes:
    - struct lxc_container*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1344
    functionName: lxc_console
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - setsid
    - lxc_setup_tios
    - close
    - fprintf
    - lxc_cmd_get_tty_fd
    - lxc_terminal_signal_init
    - lxc_terminal_signal_fini
    - lxc_mainloop_close
    - isatty
    - INFO
    - TRACE
    - lxc_mainloop
    - lxc_terminal_winsz
    - lxc_mainloop_add_handler
    - SYSWARN
    - tcsetattr
    - ERROR
    - lxc_mainloop_open
    linkageType: ''
    returnType: int
    signature: "int lxc_console(struct lxc_container *c, int ttynum,\n\t\tint stdinfd,
      int stdoutfd, int stderrfd,\n\t\tint escape)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsid
      Src: /src/lxc/src/lxc/terminal.c:1350,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/terminal.c:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1357
    functionName: lxc_make_controlling_terminal
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - setsid
    - ioctl
    linkageType: ''
    returnType: int
    signature: int lxc_make_controlling_terminal(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_make_controlling_terminal
      Src: /src/lxc/src/lxc/terminal.c:1363,1
    - Dst: lxc_terminal_set_stdfds
      Src: /src/lxc/src/lxc/terminal.c:1367,1
    - Dst: close
      Src: /src/lxc/src/lxc/terminal.c:1372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1359
    functionDepth: 3
    functionLinenumber: 1359
    functionLinenumberEnd: 1375
    functionName: lxc_terminal_prepare_login
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 1
    functionsReached:
    - lxc_terminal_set_stdfds
    - lxc_make_controlling_terminal
    - close
    linkageType: ''
    returnType: int
    signature: int lxc_terminal_prepare_login(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1384
    functionName: lxc_terminal_info_init
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_info_init(struct lxc_terminal_info *terminal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/terminal.c:1388,1
    - Dst: lxc_terminal_info_init
      Src: /src/lxc/src/lxc/terminal.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1386
    functionDepth: 1
    functionLinenumber: 1386
    functionLinenumberEnd: 1395
    functionName: lxc_terminal_init
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 2
    functionsReached:
    - memset
    - lxc_terminal_info_init
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_init(struct lxc_terminal *terminal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/terminal.c:1399,1
    - Dst: free
      Src: /src/lxc/src/lxc/terminal.c:1400,1
    - Dst: lxc_ringbuf_release
      Src: /src/lxc/src/lxc/terminal.c:1402,1
    - Dst: lxc_terminal_signal_fini
      Src: /src/lxc/src/lxc/terminal.c:1403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1404
    functionName: lxc_terminal_conf_free
    functionSourceFile: /src/lxc/src/lxc/terminal.c
    functionUses: 2
    functionsReached:
    - free
    - lxc_terminal_signal_fini
    - lxc_ringbuf_release
    linkageType: ''
    returnType: void
    signature: void lxc_terminal_conf_free(struct lxc_terminal *terminal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/terminal.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - terminal
    argTypes:
    - struct lxc_terminal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: wants_console
    functionSourceFile: /src/lxc/src/lxc/terminal.h
    functionUses: 4
    functionsReached:
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool wants_console(const struct lxc_terminal *terminal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - inlen
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 31
    functionName: strprint
    functionSourceFile: /src/lxc/src/lxc/confile_utils.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strprint(str, inlen, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/conf.h:95,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.h:96,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct lxc_cgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: free_lxc_cgroup
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 0
    functionsReached:
    - free
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void free_lxc_cgroup(struct lxc_cgroup *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.h:125,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct lxc_limit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: free_lxc_limit
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void free_lxc_limit(struct lxc_limit *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/conf.h:150,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.h:151,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct lxc_sysctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: free_lxc_sysctl
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 0
    functionsReached:
    - free
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void free_lxc_sysctl(struct lxc_sysctl *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/conf.h:171,1
    - Dst: free
      Src: /src/lxc/src/lxc/conf.h:172,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.h:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct lxc_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: free_lxc_proc
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 0
    functionsReached:
    - free
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void free_lxc_proc(struct lxc_proc *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_caps_last_cap
      Src: /src/lxc/src/lxc/conf.h:637,1
    - Dst: has_cap
      Src: /src/lxc/src/lxc/conf.h:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cap
    - conf
    argTypes:
    - __u32
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: lxc_wants_cap
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 1
    functionsReached:
    - has_cap
    - lxc_caps_last_cap
    linkageType: ''
    returnType: bool
    signature: bool lxc_wants_cap(__u32 cap, struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: userns_exec_mapped_root
      Src: /src/lxc/src/lxc/conf.h:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - conf
    argTypes:
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 658
    functionDepth: 5
    functionLinenumber: 658
    functionLinenumberEnd: 661
    functionName: chown_mapped_root
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 2
    functionsReached:
    - userns_exec_mapped_root
    linkageType: ''
    returnType: int
    signature: int chown_mapped_root(const char *path, const struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/conf.h:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rootfs
    argTypes:
    - struct lxc_rootfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: get_rootfs_mnt
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 1
    functionsReached:
    - is_empty_string
    linkageType: ''
    returnType: char
    signature: char *get_rootfs_mnt(const struct lxc_rootfs *rootfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.h:683,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/conf.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - mnt_opts
    argTypes:
    - struct lxc_mount_options*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 685
    functionName: put_lxc_mount_options
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void put_lxc_mount_options(struct lxc_mount_options *mnt_opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.h:690,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.h:691,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.h:692,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.h:694,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/conf.h:695,1
    - Dst: put_lxc_mount_options
      Src: /src/lxc/src/lxc/conf.h:696,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/conf.h:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - rootfs
    - unpin
    argTypes:
    - struct lxc_rootfs*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 700
    functionName: put_lxc_rootfs
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 2
    functionsReached:
    - storage_put
    - close_prot_errno_disarm
    - put_lxc_mount_options
    linkageType: ''
    returnType: void
    signature: void put_lxc_rootfs(struct lxc_rootfs *rootfs, bool unpin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/conf.h:706,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/conf.h:707,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/conf.h:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bpf_devices
    argTypes:
    - struct bpf_devices*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 702
    functionDepth: 3
    functionLinenumber: 702
    functionLinenumberEnd: 710
    functionName: lxc_clear_cgroup2_devices
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 1
    functionsReached:
    - list_for_each_entry_safe
    - INIT_LIST_HEAD
    - list_del
    linkageType: ''
    returnType: void
    signature: void lxc_clear_cgroup2_devices(struct bpf_devices *bpf_devices)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/conf.h:715,1
    - Dst: personality
      Src: /src/lxc/src/lxc/conf.h:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - persona
    argTypes:
    - personality_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 718
    functionName: lxc_personality
    functionSourceFile: /src/lxc/src/lxc/conf.h
    functionUses: 2
    functionsReached:
    - personality
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int lxc_personality(personality_t persona)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - __first__
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: must_make_path_relative
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: must_make_path_relative(__first__, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/string_utils.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: is_empty_string
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 41
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool is_empty_string(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: maybe_empty
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maybe_empty(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlcat
      Src: /src/lxc/src/lxc/string_utils.h:122,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/string_utils.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src
    - append
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: safe_strlcat
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 0
    functionsReached:
    - strlcat
    - ret_errno
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t safe_strlcat(char *src, const char *append, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/string_utils.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - eq
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: strnequal
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 28
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool strnequal(const char *str, const char *eq, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/string_utils.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - eq
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: strequal
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 63
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool strequal(const char *str, const char *eq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/lxc/src/lxc/string_utils.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: dotdot
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool dotdot(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: abspath
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool abspath(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/lxc/src/lxc/string_utils.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: deabs
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 1
    functionsReached:
    - strspn
    linkageType: ''
    returnType: char
    signature: char *deabs(char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - buf_size
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: strnprintf
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strnprintf(buf, buf_size, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/string_utils.h:168,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/string_utils.h:168,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/string_utils.h:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: proc_self_fd
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 0
    functionsReached:
    - strnprintf
    - INTTYPE_TO_STRLEN
    - STRLITERALLEN
    linkageType: ''
    returnType: char
    signature: char *proc_self_fd(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/string_utils.h:178,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/string_utils.h:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - __s64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: fdstr
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 3
    functionsReached:
    - strnprintf
    - INTTYPE_TO_STRLEN
    linkageType: ''
    returnType: char
    signature: char *fdstr(__s64 fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __iterator
    - ','
    - __splitme
    - ','
    - __separators
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: lxc_iterate_parts
    functionSourceFile: /src/lxc/src/lxc/string_utils.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_iterate_parts(__iterator, __splitme, __separators)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct mount_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: set_atime
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_atime(struct mount_attr *attr)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - old_flags
    - new_flags
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 93
    functionName: mnt_attributes_new
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mnt_attributes_new(unsigned int old_flags, unsigned int *new_flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - new_flags
    - old_flags
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 141
    functionName: mnt_attributes_old
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mnt_attributes_old(unsigned int new_flags, unsigned int *old_flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/mount_utils.c:150,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mount_utils.c:151,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/mount_utils.c:160,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:162,1
    - Dst: fsopen
      Src: /src/lxc/src/lxc/mount_utils.c:165,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:167,1
    - Dst: fsconfig
      Src: /src/lxc/src/lxc/mount_utils.c:170,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:172,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:174,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:177,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/mount_utils.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - fs_name
    - fd_from
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 179
    functionName: __fs_prepare
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - fsopen
    - fsconfig
    - ret_errno
    - is_empty_string
    - TRACE
    - move_fd
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int __fs_prepare(const char *fs_name, int fd_from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/mount_utils.c:188,1
    - Dst: openat2
      Src: /src/lxc/src/lxc/mount_utils.c:194,1
    - Dst: __fs_prepare
      Src: /src/lxc/src/lxc/mount_utils.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - fs_name
    - dfd_from
    - path_from
    - o_flags_from
    - resolve_flags_from
    argTypes:
    - char*
    - int
    - char*
    - __u64
    - __u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: fs_prepare
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 4
    functionsReached:
    - is_empty_string
    - openat2
    - __fs_prepare
    linkageType: ''
    returnType: int
    signature: "int fs_prepare(const char *fs_name,\n\t       int dfd_from, const
      char *path_from,\n\t       __u64 o_flags_from, __u64 resolve_flags_from)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsconfig
      Src: /src/lxc/src/lxc/mount_utils.c:209,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:211,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd_fs
    - key
    - val
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: fs_set_property
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 2
    functionsReached:
    - fsconfig
    - log_error_errno
    - TRACE
    linkageType: ''
    returnType: int
    signature: int fs_set_property(int fd_fs, const char *key, const char *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsconfig
      Src: /src/lxc/src/lxc/mount_utils.c:223,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:225,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd_fs
    - key
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: fs_set_flag
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 1
    functionsReached:
    - syserror
    - fsconfig
    - TRACE
    linkageType: ''
    returnType: int
    signature: int fs_set_flag(int fd_fs, const char *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/mount_utils.c:239,1
    - Dst: openat2
      Src: /src/lxc/src/lxc/mount_utils.c:245,1
    - Dst: fsconfig
      Src: /src/lxc/src/lxc/mount_utils.c:253,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:255,1
    - Dst: fsmount
      Src: /src/lxc/src/lxc/mount_utils.c:257,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:259,1
    - Dst: move_mount
      Src: /src/lxc/src/lxc/mount_utils.c:262,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:264,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - fd_fs
    - dfd_to
    - path_to
    - o_flags_to
    - resolve_flags_to
    - attr_flags
    argTypes:
    - int
    - int
    - char*
    - __u64
    - __u64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 268
    functionName: fs_attach
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 2
    functionsReached:
    - fsconfig
    - fsmount
    - is_empty_string
    - openat2
    - TRACE
    - move_mount
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int fs_attach(int fd_fs,\n\t      int dfd_to, const char *path_to,\n\t
      \     __u64 o_flags_to, __u64 resolve_flags_to,\n\t      unsigned int attr_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_atime
      Src: /src/lxc/src/lxc/mount_utils.c:284,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:286,1
    - Dst: open_tree
      Src: /src/lxc/src/lxc/mount_utils.c:291,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:293,1
    - Dst: mount_setattr
      Src: /src/lxc/src/lxc/mount_utils.c:295,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:299,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/mount_utils.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - path
    - userns_fd
    - recursive
    - attr_set
    - attr_clr
    argTypes:
    - char*
    - int
    - bool
    - __u64
    - __u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 302
    functionName: create_detached_idmapped_mount
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 1
    functionsReached:
    - syserror
    - open_tree
    - set_atime
    - TRACE
    - move_fd
    - mount_setattr
    linkageType: ''
    returnType: int
    signature: "int create_detached_idmapped_mount(const char *path, int userns_fd,\n\t\t\t\t
      \  bool recursive, __u64 attr_set, __u64 attr_clr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/mount_utils.c:310,1
    - Dst: openat2
      Src: /src/lxc/src/lxc/mount_utils.c:316,1
    - Dst: move_mount
      Src: /src/lxc/src/lxc/mount_utils.c:324,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:326,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - dfd_from
    - dfd_to
    - path_to
    - o_flags_to
    - resolve_flags_to
    argTypes:
    - int
    - int
    - char*
    - __u64
    - __u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 330
    functionName: move_detached_mount
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 1
    functionsReached:
    - syserror
    - is_empty_string
    - openat2
    - TRACE
    - move_mount
    linkageType: ''
    returnType: int
    signature: "int move_detached_mount(int dfd_from, int dfd_to, const char *path_to,\n\t\t\t__u64
      o_flags_to, __u64 resolve_flags_to)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: set_atime
      Src: /src/lxc/src/lxc/mount_utils.c:348,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/mount_utils.c:350,1
    - Dst: openat2
      Src: /src/lxc/src/lxc/mount_utils.c:356,1
    - Dst: open_tree
      Src: /src/lxc/src/lxc/mount_utils.c:367,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:369,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:374,1
    - Dst: mount_setattr
      Src: /src/lxc/src/lxc/mount_utils.c:378,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:382,1
    - Dst: move_detached_mount
      Src: /src/lxc/src/lxc/mount_utils.c:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 13
    argNames:
    - dfd_from
    - path_from
    - o_flags_from
    - resolve_flags_from
    - dfd_to
    - path_to
    - o_flags_to
    - resolve_flags_to
    - attr_set
    - attr_clr
    - propagation
    - userns_fd
    - recursive
    argTypes:
    - int
    - char*
    - __u64
    - __u64
    - int
    - char*
    - __u64
    - __u64
    - __u64
    - __u64
    - __u64
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 387
    functionName: __fd_bind_mount
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 2
    functionsReached:
    - syserror
    - move_detached_mount
    - open_tree
    - set_atime
    - is_empty_string
    - openat2
    - TRACE
    - mount_setattr
    linkageType: ''
    returnType: int
    signature: "int __fd_bind_mount(int dfd_from, const char *path_from, __u64 o_flags_from,\n\t\t
      \   __u64 resolve_flags_from, int dfd_to, const char *path_to,\n\t\t    __u64
      o_flags_to, __u64 resolve_flags_to, __u64 attr_set,\n\t\t    __u64 attr_clr,
      __u64 propagation, int userns_fd,\n\t\t    bool recursive)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/mount_utils.c:400,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:402,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:402,1
    - Dst: fstatvfs
      Src: /src/lxc/src/lxc/mount_utils.c:404,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:406,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:406,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 7
    argNames:
    - dfd_from
    - path_from
    - o_flags_from
    - resolve_flags_from
    - remount
    - cur_flags
    - new_flags
    argTypes:
    - int
    - char*
    - __u64
    - __u64
    - bool
    - unsigned long
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 437
    functionName: calc_remount_flags_new
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 0
    functionsReached:
    - fstatvfs
    - open_at
    - log_error_errno
    - maybe_empty
    linkageType: ''
    returnType: int
    signature: "int calc_remount_flags_new(int dfd_from, const char *path_from,\n\t\t\t
      \  __u64 o_flags_from, __u64 resolve_flags_from,\n\t\t\t   bool remount, unsigned
      long cur_flags,\n\t\t\t   unsigned int *new_flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/mount_utils.c:450,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:452,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:452,1
    - Dst: fstatvfs
      Src: /src/lxc/src/lxc/mount_utils.c:454,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/mount_utils.c:456,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:456,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 7
    argNames:
    - dfd_from
    - path_from
    - o_flags_from
    - resolve_flags_from
    - remount
    - cur_flags
    - old_flags
    argTypes:
    - int
    - char*
    - __u64
    - __u64
    - bool
    - unsigned long
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 487
    functionName: calc_remount_flags_old
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 0
    functionsReached:
    - fstatvfs
    - open_at
    - log_error_errno
    - maybe_empty
    linkageType: ''
    returnType: int
    signature: "int calc_remount_flags_old(int dfd_from, const char *path_from,\n\t\t\t
      \  __u64 o_flags_from, __u64 resolve_flags_from,\n\t\t\t   bool remount, unsigned
      long cur_flags,\n\t\t\t   unsigned int *old_flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: statvfs
      Src: /src/lxc/src/lxc/mount_utils.c:506,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - s
    - d
    - flags
    argTypes:
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 536
    functionName: add_required_remount_flags
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 0
    functionsReached:
    - statvfs
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long add_required_remount_flags(const char *s, const char
      *d,\n                                        unsigned long flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: openat2
      Src: /src/lxc/src/lxc/mount_utils.c:545,1
    - Dst: fsmount
      Src: /src/lxc/src/lxc/mount_utils.c:551,1
    - Dst: fsconfig
      Src: /src/lxc/src/lxc/mount_utils.c:557,1
    - Dst: fsopen
      Src: /src/lxc/src/lxc/mount_utils.c:563,1
    - Dst: move_mount
      Src: /src/lxc/src/lxc/mount_utils.c:569,1
    - Dst: open_tree
      Src: /src/lxc/src/lxc/mount_utils.c:575,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:582,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 586
    functionName: can_use_mount_api
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 6
    functionsReached:
    - fsconfig
    - fsopen
    - fsmount
    - open_tree
    - openat2
    - TRACE
    - move_mount
    linkageType: ''
    returnType: bool
    signature: bool can_use_mount_api(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/mount_utils.c:595,1
    - Dst: mount_setattr
      Src: /src/lxc/src/lxc/mount_utils.c:600,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 611
    functionName: can_use_bind_mounts
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 2
    functionsReached:
    - can_use_mount_api
    - TRACE
    - mount_setattr
    linkageType: ''
    returnType: bool
    signature: bool can_use_bind_mounts(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: abspath
      Src: /src/lxc/src/lxc/mount_utils.c:622,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mount_utils.c:623,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/mount_utils.c:625,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/mount_utils.c:626,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/mount_utils.c:628,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/mount_utils.c:629,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/mount_utils.c:637,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:639,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/mount_utils.c:643,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/mount_utils.c:644,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/mount_utils.c:652,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:654,1
    - Dst: mount
      Src: /src/lxc/src/lxc/mount_utils.c:658,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/mount_utils.c:660,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:661,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:661,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/mount_utils.c:663,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:663,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/mount_utils.c:663,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 9
    argNames:
    - dfd_from
    - path_from
    - resolve_flags_from
    - dfd_to
    - path_to
    - resolve_flags_to
    - fs_name
    - flags
    - data
    argTypes:
    - int
    - char*
    - __u64
    - int
    - char*
    - __u64
    - char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 665
    functionName: mount_at
    functionSourceFile: /src/lxc/src/lxc/mount_utils.c
    functionUses: 2
    functionsReached:
    - syserror
    - strnprintf
    - ret_errno
    - maybe_empty
    - abspath
    - is_empty_string
    - open_at
    - TRACE
    - mount
    linkageType: ''
    returnType: int
    signature: "int mount_at(int dfd_from, const char *path_from, __u64 resolve_flags_from,\n\t
      \    int dfd_to, const char *path_to, __u64 resolve_flags_to,\n\t     const
      char *fs_name, unsigned int flags, const void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/start.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - attr
    - size
    - flags
    argTypes:
    - struct landlock_ruleset_attr*
    - size_t
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: landlock_create_ruleset
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int landlock_create_ruleset(const struct landlock_ruleset_attr *const
      attr,\n\t\t\tconst size_t size, const __u32 flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/start.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ruleset_fd
    - flags
    argTypes:
    - int
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: landlock_restrict_self
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int landlock_restrict_self(const int ruleset_fd,\n\t\t\t\t\t const
      __u32 flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/start.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ruleset_fd
    - rule_type
    - rule_attr
    - flags
    argTypes:
    - int
    - enum landlock_rule_type
    - void*
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: landlock_add_rule
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int landlock_add_rule(const int ruleset_fd,\n\t\t\t\t    const enum
      landlock_rule_type rule_type,\n\t\t\t\t    const void *const rule_attr,\n\t\t\t\t
      \   const __u32 flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/start.c:116,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/start.c:118,1
    - Dst: access
      Src: /src/lxc/src/lxc/start.c:130,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 137
    functionName: print_top_failing_dir
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - strlen
    - access
    - must_copy_string
    linkageType: ''
    returnType: void
    signature: void print_top_failing_dir(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: lxc_put_nsfds
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_put_nsfds(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_preserve_ns
      Src: /src/lxc/src/lxc/start.c:155,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/start.c:159,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/start.c:163,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/start.c:172,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/start.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - handler
    - idx
    - ns
    argTypes:
    - struct lxc_handler*
    - lxc_namespace_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: lxc_try_preserve_namespace
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - ret_errno
    - lxc_preserve_ns
    - DEBUG
    - move_fd
    linkageType: ''
    returnType: int
    signature: "int lxc_try_preserve_namespace(struct lxc_handler *handler,\n\t\t\t\t
      \     lxc_namespace_t idx, const char *ns)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_try_preserve_namespace
      Src: /src/lxc/src/lxc/start.c:193,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:197,1
    - Dst: lxc_put_nsfds
      Src: /src/lxc/src/lxc/start.c:205,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/start.c:206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - handler
    - ns_clone_flags
    argTypes:
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 211
    functionName: lxc_try_preserve_namespaces
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - lxc_put_nsfds
    - SYSERROR
    - log_error_errno
    - lxc_try_preserve_namespace
    linkageType: ''
    returnType: bool
    signature: "bool lxc_try_preserve_namespaces(struct lxc_handler *handler,\n\t\t\t\t\tint
      ns_clone_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: match_stdfds
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool match_stdfds(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/start.c:226,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:228,1
    - Dst: readlink
      Src: /src/lxc/src/lxc/start.c:230,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:232,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:234,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/start.c:236,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/start.c:237,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/start.c:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - direntp
    argTypes:
    - struct dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: match_dlog_fds
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - readlink
    - log_error
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool match_dlog_fds(struct dirent *direntp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/lxc/src/lxc/start.c:259,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/start.c:263,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/start.c:265,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/start.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: get_listen_fds_max
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - log_trace
    - getenv
    - syserror_ret
    - lxc_safe_uint
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_listen_fds_max(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: get_listen_fds_max
      Src: /src/lxc/src/lxc/start.c:283,1
    - Dst: lxc_log_syslog_disable
      Src: /src/lxc/src/lxc/start.c:290,1
    - Dst: opendir
      Src: /src/lxc/src/lxc/start.c:293,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/start.c:295,1
    - Dst: dirfd
      Src: /src/lxc/src/lxc/start.c:297,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/start.c:299,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/start.c:303,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/start.c:306,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/start.c:309,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:311,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/start.c:325,1
    - Dst: match_stdfds
      Src: /src/lxc/src/lxc/start.c:340,1
    - Dst: match_dlog_fds
      Src: /src/lxc/src/lxc/start.c:344,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:350,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:355,1
    - Dst: SYSINFO
      Src: /src/lxc/src/lxc/start.c:356,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:358,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/start.c:359,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/start.c:362,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/start.c:364,1
    - Dst: lxc_log_syslog_enable
      Src: /src/lxc/src/lxc/start.c:371,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 59
    argCount: 4
    argNames:
    - conf
    - closeall
    - fds_to_ignore
    - len_fds
    argTypes:
    - struct lxc_conf*
    - bool
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 374
    functionName: lxc_check_inherited
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 2
    functionsReached:
    - dirfd
    - opendir
    - log_warn
    - readdir
    - strequal
    - lxc_safe_int
    - close
    - list_for_each_entry_safe
    - lxc_log_syslog_disable
    - SYSINFO
    - WARN
    - lxc_log_syslog_enable
    - match_stdfds
    - INFO
    - match_dlog_fds
    - closedir
    - get_listen_fds_max
    linkageType: ''
    returnType: int
    signature: "int lxc_check_inherited(struct lxc_conf *conf, bool closeall,\n\t\t\tint
      *fds_to_ignore, size_t len_fds)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/lxc/src/lxc/start.c:383,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/start.c:388,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/start.c:393,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/start.c:395,1
    - Dst: signalfd
      Src: /src/lxc/src/lxc/start.c:398,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/start.c:400,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - oldmask
    argTypes:
    - sigset_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 406
    functionName: setup_signal_fd
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - sigfillset
    - sigdelset
    - signalfd
    - TRACE
    - pthread_sigmask
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int setup_signal_fd(sigset_t *oldmask)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/start.c:416,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:418,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:421,1
    - Dst: waitid
      Src: /src/lxc/src/lxc/start.c:425,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:429,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/start.c:445,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:449,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/start.c:456,1
    - Dst: kill
      Src: /src/lxc/src/lxc/start.c:458,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:459,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/start.c:466,1
    - Dst: kill
      Src: /src/lxc/src/lxc/start.c:469,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:470,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/start.c:479,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:486,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:492,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/start.c:497,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 498
    functionName: signal_handler
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - WARN
    - NOTICE
    - kill
    - waitid
    - log_error
    - INFO
    - TRACE
    - lxc_read_nointr
    - log_debug
    - lxc_raw_pidfd_send_signal
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int signal_handler(int fd, uint32_t events, void *data,\n\t\t\t  struct
      lxc_async_descr *descr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:516,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/start.c:516,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/start.c:518,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/start.c:519,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/start.c:521,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/start.c:525,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:527,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/start.c:528,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:532,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/start.c:533,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/start.c:535,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:537,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/start.c:540,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:541,1
    - Dst: free
      Src: /src/lxc/src/lxc/start.c:542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - name
    - handler
    - state
    argTypes:
    - char*
    - struct lxc_handler*
    - lxc_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 546
    functionName: lxc_serve_state_clients
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - lxc_send_nointr
    - list_del
    - close
    - lxc_state2str
    - strlcpy
    - list_for_each_entry_safe
    - free
    - SYSERROR
    - log_trace
    - TRACE
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int lxc_serve_state_clients(const char *name, struct lxc_handler *handler,\n\t\t\t
      \   lxc_state_t state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:560,1
    - Dst: lxc_abstract_unix_send_credential
      Src: /src/lxc/src/lxc/start.c:563,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:566,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:575,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:577,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/start.c:577,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:581,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - name
    - handler
    - state
    argTypes:
    - char*
    - struct lxc_handler*
    - lxc_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 584
    functionName: lxc_serve_state_socket_pair
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_send_credential
    - close_prot_errno_disarm
    - lxc_state2str
    - log_error
    - SYSERROR
    - TRACE
    linkageType: ''
    returnType: int
    signature: "int lxc_serve_state_socket_pair(const char *name,\n\t\t\t\t       struct
      lxc_handler *handler,\n\t\t\t\t       lxc_state_t state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_serve_state_socket_pair
      Src: /src/lxc/src/lxc/start.c:591,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:593,1
    - Dst: lxc_serve_state_clients
      Src: /src/lxc/src/lxc/start.c:595,1
    - Dst: lxc_monitor_send_state
      Src: /src/lxc/src/lxc/start.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - name
    - handler
    - state
    argTypes:
    - char*
    - struct lxc_handler*
    - lxc_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 586
    functionDepth: 5
    functionLinenumber: 586
    functionLinenumberEnd: 605
    functionName: lxc_set_state
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - lxc_monitor_send_state
    - log_error
    - lxc_serve_state_clients
    - lxc_serve_state_socket_pair
    linkageType: ''
    returnType: int
    signature: "int lxc_set_state(const char *name, struct lxc_handler *handler,\n\t\t
      \ lxc_state_t state)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: landlock_create_ruleset
      Src: /src/lxc/src/lxc/start.c:615,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:618,1
    - Dst: landlock_create_ruleset
      Src: /src/lxc/src/lxc/start.c:629,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:632,1
    - Dst: open
      Src: /src/lxc/src/lxc/start.c:643,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:645,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:646,1
    - Dst: landlock_add_rule
      Src: /src/lxc/src/lxc/start.c:650,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:651,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:653,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:654,1
    - Dst: open
      Src: /src/lxc/src/lxc/start.c:659,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:661,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:662,1
    - Dst: landlock_add_rule
      Src: /src/lxc/src/lxc/start.c:666,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:667,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:669,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:670,1
    - Dst: open
      Src: /src/lxc/src/lxc/start.c:675,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:677,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:678,1
    - Dst: landlock_add_rule
      Src: /src/lxc/src/lxc/start.c:682,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:683,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:685,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:686,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/start.c:691,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:692,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:693,1
    - Dst: landlock_restrict_self
      Src: /src/lxc/src/lxc/start.c:698,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:699,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:700,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:704,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 707
    functionName: lxc_mainloop_protect
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - landlock_create_ruleset
    - close
    - landlock_add_rule
    - SYSERROR
    - prctl
    - landlock_restrict_self
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_mainloop_protect(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_mainloop_protect
      Src: /src/lxc/src/lxc/start.c:714,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:716,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/start.c:720,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/start.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 724
    functionName: lxc_handler_mainloop_thread_fn
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - lxc_mainloop_protect
    - ERROR
    - lxc_mainloop
    - INT_TO_PTR
    linkageType: ''
    returnType: void
    signature: void *lxc_handler_mainloop_thread_fn(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:735,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/start.c:738,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:741,1
    - Dst: pthread_create
      Src: /src/lxc/src/lxc/start.c:743,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/start.c:745,1
    - Dst: pthread_join
      Src: /src/lxc/src/lxc/start.c:749,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/start.c:751,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:756,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/start.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - descr
    - handler
    argTypes:
    - struct lxc_async_descr*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 726
    functionDepth: 5
    functionLinenumber: 726
    functionLinenumberEnd: 760
    functionName: lxc_handler_mainloop
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - log_error
    - SYSERROR
    - lxc_mainloop
    - INFO
    - pthread_join
    - PTR_TO_INT
    - log_error_errno
    - pthread_create
    linkageType: ''
    returnType: int
    signature: int lxc_handler_mainloop(struct lxc_async_descr *descr, struct lxc_handler
      *handler)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: wants_console
      Src: /src/lxc/src/lxc/start.c:769,1
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/start.c:772,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:774,1
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/start.c:779,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:781,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/start.c:786,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:791,1
    - Dst: lxc_seccomp_setup_proxy
      Src: /src/lxc/src/lxc/start.c:795,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:797,1
    - Dst: lxc_terminal_mainloop_add
      Src: /src/lxc/src/lxc/start.c:802,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:804,1
    - Dst: lxc_cmd_mainloop_add
      Src: /src/lxc/src/lxc/start.c:809,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:811,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:815,1
    - Dst: lxc_handler_mainloop
      Src: /src/lxc/src/lxc/start.c:818,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/start.c:820,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:823,1
    - Dst: lxc_terminal_mainloop_add
      Src: /src/lxc/src/lxc/start.c:828,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/start.c:830,1
    - Dst: lxc_mainloop_close
      Src: /src/lxc/src/lxc/start.c:835,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:836,1
    - Dst: lxc_mainloop_close
      Src: /src/lxc/src/lxc/start.c:840,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:841,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:844,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:845,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 2
    argNames:
    - name
    - handler
    argTypes:
    - char*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 763
    functionDepth: 6
    functionLinenumber: 763
    functionLinenumberEnd: 848
    functionName: lxc_poll
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - close_prot_errno_disarm
    - lxc_mainloop_close
    - lxc_terminal_mainloop_add
    - lxc_handler_mainloop
    - lxc_mainloop
    - TRACE
    - lxc_seccomp_setup_proxy
    - lxc_mainloop_add_handler
    - lxc_cmd_mainloop_add
    - wants_console
    - ERROR
    - lxc_mainloop_open
    linkageType: ''
    returnType: int
    signature: int lxc_poll(const char *name, struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:852,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:853,1
    - Dst: lxc_put_nsfds
      Src: /src/lxc/src/lxc/start.c:854,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:856,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:857,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:858,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:859,1
    - Dst: cgroup_exit
      Src: /src/lxc/src/lxc/start.c:860,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/start.c:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 865
    functionName: lxc_put_handler
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - cgroup_exit
    - lxc_put_nsfds
    - close_prot_errno_disarm
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void lxc_put_handler(struct lxc_handler *handler)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/start.c:876,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/start.c:886,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/start.c:898,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/start.c:915,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/start.c:924,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:927,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:931,1
    - Dst: lxc_server_init
      Src: /src/lxc/src/lxc/start.c:939,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:941,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:947,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/start.c:953,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 5
    argNames:
    - old
    - name
    - conf
    - lxcpath
    - daemonize
    argTypes:
    - struct lxc_handler*
    - char*
    - struct lxc_conf*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 867
    functionDepth: 3
    functionLinenumber: 867
    functionLinenumberEnd: 956
    functionName: lxc_init_handler
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 2
    functionsReached:
    - INIT_LIST_HEAD
    - lxc_put_handler
    - lxc_server_init
    - socketpair
    - am_guest_unpriv
    - TRACE
    - zalloc
    - ERROR
    - lxc_raw_getpid
    linkageType: ''
    returnType: struct lxc_handler
    signature: "struct lxc_handler *lxc_init_handler(struct lxc_handler *old,\n\t\t\t\t
      \    const char *name, struct lxc_conf *conf,\n\t\t\t\t     const char *lxcpath,
      bool daemonize)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/start.c:965,1
    - Dst: open
      Src: /src/lxc/src/lxc/start.c:966,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/start.c:968,1
    - Dst: lsm_init_static
      Src: /src/lxc/src/lxc/start.c:970,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:971,1
    - Dst: lxc_set_state
      Src: /src/lxc/src/lxc/start.c:974,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:976,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/start.c:976,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:977,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:980,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:982,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:985,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:987,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:991,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:993,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:997,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:999,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1003,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1005,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1009,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1011,1
    - Dst: cgns_supported
      Src: /src/lxc/src/lxc/start.c:1014,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1015,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1017,1
    - Dst: lxc_log_priority_to_string
      Src: /src/lxc/src/lxc/start.c:1020,1
    - Dst: lxc_log_get_level
      Src: /src/lxc/src/lxc/start.c:1020,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1021,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1023,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1026,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1028,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1030,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1033,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/start.c:1035,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:1037,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1038,1
    - Dst: lxc_terminal_parent
      Src: /src/lxc/src/lxc/start.c:1040,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:1042,1
    - Dst: setup_signal_fd
      Src: /src/lxc/src/lxc/start.c:1048,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/start.c:1050,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1051,1
    - Dst: cgroup_init
      Src: /src/lxc/src/lxc/start.c:1053,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1055,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1058,1
    - Dst: lxc_read_seccomp_config
      Src: /src/lxc/src/lxc/start.c:1060,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1062,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1065,1
    - Dst: struct lxc_handler*::lsm_ops::prepare
      Src: /src/lxc/src/lxc/start.c:1067,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1069,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1072,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:1074,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/start.c:1075,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/start.c:1079,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 2
    argNames:
    - name
    - handler
    argTypes:
    - char*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 958
    functionDepth: 7
    functionLinenumber: 958
    functionLinenumberEnd: 1082
    functionName: lxc_init
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - lxc_state2str
    - lxc_terminal_parent
    - setup_signal_fd
    - setenv
    - log_error
    - move_fd
    - cgns_supported
    - pthread_sigmask
    - lxc_log_get_level
    - open
    - lsm_init_static
    - lxc_read_seccomp_config
    - SYSERROR
    - TRACE
    - lxc_log_priority_to_string
    - struct lxc_handler*::lsm_ops::prepare
    - run_lxc_hooks
    - lxc_raw_getpid
    - INFO
    - lxc_set_state
    - cgroup_init
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_init(const char *name, struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/lxc/src/lxc/start.c:1093,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1094,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1096,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1102
    functionName: lxc_expose_namespace_environment
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - strcspn
    - TRACE
    - setenv
    - SYSERROR
    linkageType: ''
    returnType: void
    signature: void lxc_expose_namespace_environment(const struct lxc_handler *handler)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lxc_set_state
      Src: /src/lxc/src/lxc/start.c:1114,1
    - Dst: lxc_expose_namespace_environment
      Src: /src/lxc/src/lxc/start.c:1118,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1121,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1123,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1127,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1129,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/start.c:1133,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/start.c:1135,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1137,1
    - Dst: struct lxc_handler*::lsm_ops::cleanup
      Src: /src/lxc/src/lxc/start.c:1139,1
    - Dst: struct cgroup_ops*::payload_destroy
      Src: /src/lxc/src/lxc/start.c:1142,1
    - Dst: struct cgroup_ops*::monitor_destroy
      Src: /src/lxc/src/lxc/start.c:1143,1
    - Dst: put_lxc_rootfs
      Src: /src/lxc/src/lxc/start.c:1146,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:1155,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1156,1
    - Dst: lxc_monitor_send_state
      Src: /src/lxc/src/lxc/start.c:1161,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1167,1
    - Dst: lxc_set_state
      Src: /src/lxc/src/lxc/start.c:1169,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1170,1
    - Dst: lxc_put_nsfds
      Src: /src/lxc/src/lxc/start.c:1174,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/start.c:1176,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1178,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/start.c:1180,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1183,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/start.c:1185,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/start.c:1190,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/start.c:1192,1
    - Dst: lxc_terminal_delete
      Src: /src/lxc/src/lxc/start.c:1194,1
    - Dst: lxc_delete_tty
      Src: /src/lxc/src/lxc/start.c:1195,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:1196,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/start.c:1201,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/start.c:1208,1
    - Dst: close
      Src: /src/lxc/src/lxc/start.c:1209,1
    - Dst: free
      Src: /src/lxc/src/lxc/start.c:1210,1
    - Dst: lxc_destroy_container_on_signal
      Src: /src/lxc/src/lxc/start.c:1214,1
    - Dst: lxc_put_handler
      Src: /src/lxc/src/lxc/start.c:1216,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1104
    functionDepth: 6
    functionLinenumber: 1104
    functionLinenumberEnd: 1217
    functionName: lxc_end
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - put_lxc_rootfs
    - lxc_put_handler
    - close
    - struct lxc_handler*::lsm_ops::cleanup
    - lxc_terminal_delete
    - setenv
    - close_prot_errno_disarm
    - free
    - lxc_monitor_send_state
    - struct cgroup_ops*::payload_destroy
    - lxc_delete_tty
    - pthread_sigmask
    - WARN
    - list_del
    - list_for_each_entry_safe
    - struct cgroup_ops*::monitor_destroy
    - SYSERROR
    - lxc_put_nsfds
    - TRACE
    - run_lxc_hooks
    - lxc_expose_namespace_environment
    - lxc_destroy_container_on_signal
    - lxc_set_state
    - SYSWARN
    - ERROR
    linkageType: ''
    returnType: void
    signature: void lxc_end(struct lxc_handler *handler)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_set_state
      Src: /src/lxc/src/lxc/start.c:1224,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/start.c:1227,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/start.c:1229,1
    - Dst: kill
      Src: /src/lxc/src/lxc/start.c:1234,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/start.c:1235,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/start.c:1238,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1219
    functionDepth: 6
    functionLinenumber: 1219
    functionLinenumberEnd: 1240
    functionName: lxc_abort
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - waitpid
    - kill
    - lxc_set_state
    - SYSWARN
    - lxc_raw_pidfd_send_signal
    linkageType: ''
    returnType: void
    signature: void lxc_abort(struct lxc_handler *handler)
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: lxc_sync_fini_parent
      Src: /src/lxc/src/lxc/start.c:1254,1
    - Dst: lxc_abstract_unix_recv_one_fd
      Src: /src/lxc/src/lxc/start.c:1256,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1257,1
    - Dst: lxc_set_death_signal
      Src: /src/lxc/src/lxc/start.c:1267,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1269,1
    - Dst: lxc_ambient_caps_up
      Src: /src/lxc/src/lxc/start.c:1273,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1275,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/start.c:1279,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1281,1
    - Dst: lxc_sync_wait_parent
      Src: /src/lxc/src/lxc/start.c:1285,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/start.c:1292,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1294,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:1297,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/start.c:1303,1
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/start.c:1310,1
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/start.c:1314,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/start.c:1317,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1317,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1317,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1318,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1318,1
    - Dst: lxc_set_death_signal
      Src: /src/lxc/src/lxc/start.c:1323,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1325,1
    - Dst: access
      Src: /src/lxc/src/lxc/start.c:1330,1
    - Dst: print_top_failing_dir
      Src: /src/lxc/src/lxc/start.c:1332,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/start.c:1349,1
    - Dst: access
      Src: /src/lxc/src/lxc/start.c:1354,1
    - Dst: open_devnull
      Src: /src/lxc/src/lxc/start.c:1356,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/start.c:1360,1
    - Dst: lxc_sync_wake_parent
      Src: /src/lxc/src/lxc/start.c:1368,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/start.c:1384,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1387,1
    - Dst: SYSINFO
      Src: /src/lxc/src/lxc/start.c:1392,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:1394,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/start.c:1399,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1402,1
    - Dst: SYSINFO
      Src: /src/lxc/src/lxc/start.c:1407,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:1411,1
    - Dst: timens_offset_write
      Src: /src/lxc/src/lxc/start.c:1414,1
    - Dst: timens_offset_write
      Src: /src/lxc/src/lxc/start.c:1416,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1418,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1421,1
    - Dst: timens_offset_write
      Src: /src/lxc/src/lxc/start.c:1424,1
    - Dst: timens_offset_write
      Src: /src/lxc/src/lxc/start.c:1426,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1428,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1431,1
    - Dst: open
      Src: /src/lxc/src/lxc/start.c:1433,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1435,1
    - Dst: setns
      Src: /src/lxc/src/lxc/start.c:1439,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1441,1
    - Dst: lxc_set_environment
      Src: /src/lxc/src/lxc/start.c:1452,1
    - Dst: lxc_set_environment
      Src: /src/lxc/src/lxc/start.c:1456,1
    - Dst: lxc_sync_wait_parent
      Src: /src/lxc/src/lxc/start.c:1460,1
    - Dst: lxc_setup
      Src: /src/lxc/src/lxc/start.c:1464,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1466,1
    - Dst: struct lxc_handler*::lsm_ops::process_label_set
      Src: /src/lxc/src/lxc/start.c:1471,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/start.c:1479,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1479,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1479,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1480,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1480,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1482,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/start.c:1485,1
    - Dst: tmp_proc_unmount
      Src: /src/lxc/src/lxc/start.c:1489,1
    - Dst: lxc_seccomp_load
      Src: /src/lxc/src/lxc/start.c:1491,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/start.c:1495,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1497,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:1502,1
    - Dst: open_devnull
      Src: /src/lxc/src/lxc/start.c:1506,1
    - Dst: set_stdfds
      Src: /src/lxc/src/lxc/start.c:1511,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1513,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:1518,1
    - Dst: setsid
      Src: /src/lxc/src/lxc/start.c:1520,1
    - Dst: stat
      Src: /src/lxc/src/lxc/start.c:1524,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/start.c:1524,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1525,1
    - Dst: chdir
      Src: /src/lxc/src/lxc/start.c:1529,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1531,1
    - Dst: lxc_sync_barrier_parent
      Src: /src/lxc/src/lxc/start.c:1537,1
    - Dst: lxc_sync_fds_child
      Src: /src/lxc/src/lxc/start.c:1540,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1542,1
    - Dst: lxc_sync_wait_parent
      Src: /src/lxc/src/lxc/start.c:1546,1
    - Dst: clearenv
      Src: /src/lxc/src/lxc/start.c:1552,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1555,1
    - Dst: lxc_set_environment
      Src: /src/lxc/src/lxc/start.c:1557,1
    - Dst: lxc_set_environment
      Src: /src/lxc/src/lxc/start.c:1561,1
    - Dst: putenv
      Src: /src/lxc/src/lxc/start.c:1565,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1567,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1572,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1574,1
    - Dst: fix_stdio_permissions
      Src: /src/lxc/src/lxc/start.c:1593,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/start.c:1595,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/start.c:1601,1
    - Dst: lxc_proc_cap_is_set
      Src: /src/lxc/src/lxc/start.c:1603,1
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/start.c:1607,1
    - Dst: lxc_setgroups
      Src: /src/lxc/src/lxc/start.c:1614,1
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/start.c:1619,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/start.c:1622,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1622,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1622,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1623,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/start.c:1623,1
    - Dst: lxc_ambient_caps_down
      Src: /src/lxc/src/lxc/start.c:1627,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1629,1
    - Dst: lxc_set_death_signal
      Src: /src/lxc/src/lxc/start.c:1634,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1637,1
    - Dst: struct lxc_handler*::ops::start
      Src: /src/lxc/src/lxc/start.c:1647,1
    - Dst: lxc_sync_wake_parent
      Src: /src/lxc/src/lxc/start.c:1654,1
    CyclomaticComplexity: 123
    EdgeCount: 123
    ICount: 302
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1242
    functionDepth: 10
    functionLinenumber: 1242
    functionLinenumberEnd: 1658
    functionName: do_start
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - lxc_switch_uid_gid
    - lxc_set_death_signal
    - chdir
    - struct lxc_handler*::ops::start
    - lxc_sync_wait_parent
    - lxc_sync_fds_child
    - lxc_setgroups
    - setsid
    - lxc_sync_wake_parent
    - close_prot_errno_disarm
    - setenv
    - container_uses_namespace
    - putenv
    - lxc_setup
    - lxc_ambient_caps_up
    - setns
    - lxc_mkdir_p
    - struct lxc_handler*::lsm_ops::process_label_set
    - fix_stdio_permissions
    - lxc_set_environment
    - pthread_sigmask
    - open
    - WARN
    - set_stdfds
    - SYSERROR
    - prctl
    - tmp_proc_unmount
    - lxc_sync_fini_parent
    - TRACE
    - lxc_abstract_unix_recv_one_fd
    - DEBUG
    - open_devnull
    - run_lxc_hooks
    - clearenv
    - timens_offset_write
    - stat
    - strnprintf
    - SYSINFO
    - lxc_ambient_caps_down
    - lxc_seccomp_load
    - prctl_arg
    - unshare
    - lxc_drop_groups
    - access
    - lxc_proc_cap_is_set
    - INFO
    - list_empty
    - lxc_sync_barrier_parent
    - ERROR
    - print_top_failing_dir
    linkageType: ''
    returnType: int
    signature: int do_start(void *data)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/start.c:1675,1
    - Dst: lxc_requests_empty_network
      Src: /src/lxc/src/lxc/start.c:1678,1
    - Dst: cgns_supported
      Src: /src/lxc/src/lxc/start.c:1681,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1694,1
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/start.c:1698,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/start.c:1704,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 36
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1717
    functionName: resolve_clone_flags
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - pure_unified_layout
    - TRACE
    - list_empty
    - cgns_supported
    - log_trace_errno
    - lxc_requests_empty_network
    linkageType: ''
    returnType: int
    signature: int resolve_clone_flags(struct lxc_handler *handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setns
      Src: /src/lxc/src/lxc/start.c:1740,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1747,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/start.c:1752,1
    - Dst: lxc_raw_clone_cb
      Src: /src/lxc/src/lxc/start.c:1757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1731
    functionDepth: 1
    functionLinenumber: 1731
    functionLinenumberEnd: 1763
    functionName: do_share_ns
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - DEBUG
    - lxc_raw_clone_cb
    - SYSERROR
    - setns
    linkageType: ''
    returnType: int
    signature: int do_share_ns(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_trace
      Src: /src/lxc/src/lxc/start.c:1771,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/start.c:1773,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/start.c:1774,1
    - Dst: core_scheduling_cookie_create_threadgroup
      Src: /src/lxc/src/lxc/start.c:1776,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:1779,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/start.c:1784,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/start.c:1786,1
    - Dst: core_scheduling_cookie_get
      Src: /src/lxc/src/lxc/start.c:1789,1
    - Dst: core_scheduling_cookie_valid
      Src: /src/lxc/src/lxc/start.c:1790,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/start.c:1791,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1765
    functionDepth: 2
    functionLinenumber: 1765
    functionLinenumberEnd: 1797
    functionName: core_scheduling
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - core_scheduling_cookie_valid
    - syserror
    - core_scheduling_cookie_create_threadgroup
    - syserror_set
    - container_uses_namespace
    - core_scheduling_cookie_get
    - log_trace
    - INFO
    - TRACE
    linkageType: ''
    returnType: int
    signature: int core_scheduling(struct lxc_handler *handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1809
    functionName: inherits_namespaces
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool inherits_namespaces(const struct lxc_handler *handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1816
    functionName: resolve_cgroup_clone_flags
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void resolve_cgroup_clone_flags(struct lxc_handler *handler)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/start.c:1837,1
    - Dst: lxc_sync_init
      Src: /src/lxc/src/lxc/start.c:1839,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/start.c:1842,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/start.c:1849,1
    - Dst: lxc_find_gateway_addresses
      Src: /src/lxc/src/lxc/start.c:1850,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1852,1
    - Dst: struct cgroup_ops*::payload_create
      Src: /src/lxc/src/lxc/start.c:1857,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1858,1
    - Dst: inherits_namespaces
      Src: /src/lxc/src/lxc/start.c:1863,1
    - Dst: resolve_cgroup_clone_flags
      Src: /src/lxc/src/lxc/start.c:1866,1
    - Dst: lxc_clone
      Src: /src/lxc/src/lxc/start.c:1867,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1870,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/start.c:1874,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1876,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1881,1
    - Dst: ptr_to_u64
      Src: /src/lxc/src/lxc/start.c:1889,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/start.c:1893,1
    - Dst: cgroup_unified_fd
      Src: /src/lxc/src/lxc/start.c:1894,1
    - Dst: lxc_clone3
      Src: /src/lxc/src/lxc/start.c:1903,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/start.c:1905,1
    - Dst: resolve_cgroup_clone_flags
      Src: /src/lxc/src/lxc/start.c:1908,1
    - Dst: lxc_clone3
      Src: /src/lxc/src/lxc/start.c:1911,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1913,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/start.c:1918,1
    - Dst: lxc_raw_legacy_clone
      Src: /src/lxc/src/lxc/start.c:1935,1
    - Dst: lxc_raw_legacy_clone
      Src: /src/lxc/src/lxc/start.c:1937,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1942,1
    - Dst: do_start
      Src: /src/lxc/src/lxc/start.c:1947,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/start.c:1948,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:1953,1
    - Dst: core_scheduling
      Src: /src/lxc/src/lxc/start.c:1955,1
    - Dst: lxc_can_use_pidfd
      Src: /src/lxc/src/lxc/start.c:1960,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:1961,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/start.c:1963,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/start.c:1967,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:1969,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:1973,1
    - Dst: lxc_try_preserve_namespaces
      Src: /src/lxc/src/lxc/start.c:1975,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1976,1
    - Dst: lxc_sync_fini_child
      Src: /src/lxc/src/lxc/start.c:1980,1
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/start.c:1982,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1983,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/start.c:1986,1
    - Dst: lxc_map_ids
      Src: /src/lxc/src/lxc/start.c:1997,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:1999,1
    - Dst: struct cgroup_ops*::setup_limits_legacy
      Src: /src/lxc/src/lxc/start.c:2005,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2006,1
    - Dst: struct cgroup_ops*::payload_delegate_controllers
      Src: /src/lxc/src/lxc/start.c:2010,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2011,1
    - Dst: struct cgroup_ops*::payload_enter
      Src: /src/lxc/src/lxc/start.c:2015,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2016,1
    - Dst: struct cgroup_ops*::setup_limits
      Src: /src/lxc/src/lxc/start.c:2020,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2021,1
    - Dst: struct cgroup_ops*::chown
      Src: /src/lxc/src/lxc/start.c:2025,1
    - Dst: lxc_sync_barrier_child
      Src: /src/lxc/src/lxc/start.c:2028,1
    - Dst: lxc_try_preserve_namespace
      Src: /src/lxc/src/lxc/start.c:2033,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2036,1
    - Dst: lxc_netns_set_nsid
      Src: /src/lxc/src/lxc/start.c:2041,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/start.c:2043,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:2045,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/start.c:2048,1
    - Dst: lxc_create_network
      Src: /src/lxc/src/lxc/start.c:2049,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2051,1
    - Dst: setup_proc_filesystem
      Src: /src/lxc/src/lxc/start.c:2056,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2058,1
    - Dst: setup_resource_limits
      Src: /src/lxc/src/lxc/start.c:2062,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2064,1
    - Dst: lxc_sync_wake_child
      Src: /src/lxc/src/lxc/start.c:2069,1
    - Dst: lxc_rootfs_prepare_parent
      Src: /src/lxc/src/lxc/start.c:2072,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2074,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/start.c:2078,1
    - Dst: lxc_network_send_to_child
      Src: /src/lxc/src/lxc/start.c:2079,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2081,1
    - Dst: lxc_sync_wait_child
      Src: /src/lxc/src/lxc/start.c:2086,1
    - Dst: lxc_idmapped_mounts_parent
      Src: /src/lxc/src/lxc/start.c:2089,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2091,1
    - Dst: lxc_sync_wait_child
      Src: /src/lxc/src/lxc/start.c:2095,1
    - Dst: struct cgroup_ops*::setup_limits_legacy
      Src: /src/lxc/src/lxc/start.c:2103,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2104,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:2107,1
    - Dst: struct cgroup_ops*::devices_activate
      Src: /src/lxc/src/lxc/start.c:2109,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2110,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:2113,1
    - Dst: struct cgroup_ops*::finalize
      Src: /src/lxc/src/lxc/start.c:2115,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:2116,1
    - Dst: run_lxc_hooks
      Src: /src/lxc/src/lxc/start.c:2119,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2121,1
    - Dst: lxc_sync_wake_child
      Src: /src/lxc/src/lxc/start.c:2125,1
    - Dst: lxc_try_preserve_namespace
      Src: /src/lxc/src/lxc/start.c:2130,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2133,1
    - Dst: lxc_try_preserve_namespace
      Src: /src/lxc/src/lxc/start.c:2141,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2144,1
    - Dst: lxc_sync_fds_parent
      Src: /src/lxc/src/lxc/start.c:2150,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2152,1
    - Dst: lxc_terminal_setup
      Src: /src/lxc/src/lxc/start.c:2156,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2158,1
    - Dst: lxc_sync_barrier_child
      Src: /src/lxc/src/lxc/start.c:2169,1
    - Dst: lxc_log_configured_netdevs
      Src: /src/lxc/src/lxc/start.c:2177,1
    - Dst: struct lxc_handler*::ops::post_start
      Src: /src/lxc/src/lxc/start.c:2179,1
    - Dst: lxc_set_state
      Src: /src/lxc/src/lxc/start.c:2183,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2185,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/start.c:2185,1
    - Dst: lxc_sync_fini
      Src: /src/lxc/src/lxc/start.c:2189,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/start.c:2194,1
    - Dst: lxc_delete_network
      Src: /src/lxc/src/lxc/start.c:2195,1
    - Dst: lxc_abort
      Src: /src/lxc/src/lxc/start.c:2198,1
    - Dst: lxc_sync_fini
      Src: /src/lxc/src/lxc/start.c:2201,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 289
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 1825
    functionDepth: 10
    functionLinenumber: 1825
    functionLinenumberEnd: 2204
    functionName: lxc_spawn
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - lxc_clone
    - struct cgroup_ops*::setup_limits_legacy
    - struct cgroup_ops*::payload_delegate_controllers
    - lxc_rootfs_prepare_parent
    - lxc_log_configured_netdevs
    - lxc_state2str
    - lxc_sync_wait_child
    - resolve_cgroup_clone_flags
    - core_scheduling
    - struct lxc_handler*::ops::post_start
    - wait_for_pid
    - struct cgroup_ops*::chown
    - lxc_find_gateway_addresses
    - ptr_to_u64
    - lxc_abstract_unix_send_fds
    - lxc_abort
    - setup_resource_limits
    - close_prot_errno_disarm
    - setenv
    - container_uses_namespace
    - lxc_try_preserve_namespace
    - socketpair
    - struct cgroup_ops*::setup_limits
    - lxc_sync_fds_parent
    - lxc_sync_fini
    - struct cgroup_ops*::payload_create
    - cgroup_unified_fd
    - lxc_netns_set_nsid
    - inherits_namespaces
    - lxc_clone3
    - setup_proc_filesystem
    - lxc_delete_network
    - lxc_raw_legacy_clone
    - SYSERROR
    - TRACE
    - lxc_sync_init
    - lxc_try_preserve_namespaces
    - run_lxc_hooks
    - lxc_sync_barrier_child
    - lxc_terminal_setup
    - do_start
    - lxc_sync_fini_child
    - lxc_idmapped_mounts_parent
    - strnprintf
    - lxc_network_send_to_child
    - struct cgroup_ops*::finalize
    - struct cgroup_ops*::devices_activate
    - lxc_create_network
    - INFO
    - _exit
    - lxc_sync_wake_child
    - lxc_set_state
    - lxc_map_ids
    - SYSWARN
    - lxc_can_use_pidfd
    - SYSTRACE
    - ERROR
    - list_empty
    - struct cgroup_ops*::payload_enter
    linkageType: ''
    returnType: int
    signature: int lxc_spawn(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_inherit_namespace
      Src: /src/lxc/src/lxc/start.c:2215,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:2221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2206
    functionDepth: 3
    functionLinenumber: 2206
    functionLinenumberEnd: 2226
    functionName: lxc_inherit_namespaces
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - TRACE
    - lxc_inherit_namespace
    linkageType: ''
    returnType: int
    signature: int lxc_inherit_namespaces(struct lxc_handler *handler)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: lxc_init
      Src: /src/lxc/src/lxc/start.c:2236,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2238,1
    - Dst: attach_block_device
      Src: /src/lxc/src/lxc/start.c:2246,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2247,1
    - Dst: struct cgroup_ops*::monitor_create
      Src: /src/lxc/src/lxc/start.c:2252,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2253,1
    - Dst: struct cgroup_ops*::monitor_delegate_controllers
      Src: /src/lxc/src/lxc/start.c:2258,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2259,1
    - Dst: struct cgroup_ops*::monitor_enter
      Src: /src/lxc/src/lxc/start.c:2264,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2265,1
    - Dst: resolve_clone_flags
      Src: /src/lxc/src/lxc/start.c:2270,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2272,1
    - Dst: lxc_inherit_namespaces
      Src: /src/lxc/src/lxc/start.c:2277,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2279,1
    - Dst: lxc_rootfs_init
      Src: /src/lxc/src/lxc/start.c:2288,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/start.c:2288,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2290,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/start.c:2295,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/start.c:2295,1
    - Dst: rootfs_is_blockdev
      Src: /src/lxc/src/lxc/start.c:2299,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/start.c:2300,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2302,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:2305,1
    - Dst: lxc_setup_rootfs_prepare_root
      Src: /src/lxc/src/lxc/start.c:2307,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2309,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:2312,1
    - Dst: lxc_spawn
      Src: /src/lxc/src/lxc/start.c:2316,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2318,1
    - Dst: lxc_poll
      Src: /src/lxc/src/lxc/start.c:2324,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2326,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2331,1
    - Dst: lxc_wait_for_pid_status
      Src: /src/lxc/src/lxc/start.c:2336,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2338,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/lxc/start.c:2344,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/start.c:2345,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/start.c:2348,1
    - Dst: signal_name
      Src: /src/lxc/src/lxc/start.c:2348,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/start.c:2351,1
    - Dst: signal_name
      Src: /src/lxc/src/lxc/start.c:2351,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/start.c:2355,1
    - Dst: signal_name
      Src: /src/lxc/src/lxc/start.c:2355,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/start.c:2358,1
    - Dst: signal_name
      Src: /src/lxc/src/lxc/start.c:2358,1
    - Dst: lxc_restore_phys_nics_to_netns
      Src: /src/lxc/src/lxc/start.c:2363,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2365,1
    - Dst: lxc_monitor_send_exit_code
      Src: /src/lxc/src/lxc/start.c:2367,1
    - Dst: lxc_error_set_and_log
      Src: /src/lxc/src/lxc/start.c:2368,1
    - Dst: lxc_delete_network
      Src: /src/lxc/src/lxc/start.c:2372,1
    - Dst: detach_block_device
      Src: /src/lxc/src/lxc/start.c:2373,1
    - Dst: lxc_end
      Src: /src/lxc/src/lxc/start.c:2374,1
    - Dst: lxc_abort
      Src: /src/lxc/src/lxc/start.c:2378,1
    - Dst: lxc_end
      Src: /src/lxc/src/lxc/start.c:2379,1
    - Dst: lxc_abort
      Src: /src/lxc/src/lxc/start.c:2383,1
    - Dst: detach_block_device
      Src: /src/lxc/src/lxc/start.c:2384,1
    - Dst: lxc_end
      Src: /src/lxc/src/lxc/start.c:2385,1
    - Dst: lxc_abort
      Src: /src/lxc/src/lxc/start.c:2389,1
    - Dst: lxc_restore_phys_nics_to_netns
      Src: /src/lxc/src/lxc/start.c:2390,1
    - Dst: lxc_delete_network
      Src: /src/lxc/src/lxc/start.c:2391,1
    - Dst: detach_block_device
      Src: /src/lxc/src/lxc/start.c:2392,1
    - Dst: lxc_end
      Src: /src/lxc/src/lxc/start.c:2393,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 143
    argCount: 6
    argNames:
    - handler
    - ops
    - data
    - lxcpath
    - daemonize
    - error_num
    argTypes:
    - struct lxc_handler*
    - struct lxc_operations*
    - void*
    - char*
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2228
    functionDepth: 11
    functionLinenumber: 2228
    functionLinenumberEnd: 2395
    functionName: __lxc_start
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - WIFSIGNALED
    - detach_block_device
    - struct cgroup_ops*::monitor_create
    - lxc_spawn
    - struct cgroup_ops*::monitor_delegate_controllers
    - rootfs_is_blockdev
    - ERROR
    - lxc_abort
    - lxc_poll
    - lxc_inherit_namespaces
    - struct cgroup_ops*::monitor_enter
    - lxc_rootfs_init
    - signal_name
    - lxc_end
    - lxc_restore_phys_nics_to_netns
    - WTERMSIG
    - lxc_delete_network
    - SYSERROR
    - geteuid
    - DEBUG
    - resolve_clone_flags
    - lxc_error_set_and_log
    - lxc_wait_for_pid_status
    - lxc_monitor_send_exit_code
    - unshare
    - attach_block_device
    - INFO
    - lxc_init
    - lxc_setup_rootfs_prepare_root
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int __lxc_start(struct lxc_handler *handler, struct lxc_operations
      *ops,\n\t\tvoid *data, const char *lxcpath, bool daemonize, int *error_num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/start.c:2405,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/start.c:2407,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/start.c:2408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - handler
    - data
    argTypes:
    - struct lxc_handler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2410
    functionName: start
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 15
    functionsReached:
    - NOTICE
    - SYSERROR
    - execvp
    linkageType: ''
    returnType: int
    signature: int start(struct lxc_handler *handler, void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/start.c:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - data
    argTypes:
    - struct lxc_handler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2412
    functionDepth: 1
    functionLinenumber: 2412
    functionLinenumberEnd: 2418
    functionName: post_start
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - NOTICE
    linkageType: ''
    returnType: int
    signature: int post_start(struct lxc_handler *handler, void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/start.c:2432,1
    - Dst: __lxc_start
      Src: /src/lxc/src/lxc/start.c:2433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - argv
    - handler
    - lxcpath
    - daemonize
    - error_num
    argTypes:
    - char*[]
    - struct lxc_handler*
    - char*
    - bool
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2425
    functionDepth: 12
    functionLinenumber: 2425
    functionLinenumberEnd: 2434
    functionName: lxc_start
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 3
    functionsReached:
    - TRACE
    - __lxc_start
    linkageType: ''
    returnType: int
    signature: "int lxc_start(char *const argv[], struct lxc_handler *handler,\n\t
      \     const char *lxcpath, bool daemonize, int *error_num)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: do_destroy_container
      Src: /src/lxc/src/lxc/start.c:2445,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2447,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:2451,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/start.c:2453,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2455,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/start.c:2459,1
    - Dst: container_disk_lock
      Src: /src/lxc/src/lxc/start.c:2461,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:2462,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/start.c:2463,1
    - Dst: mod_all_rdeps
      Src: /src/lxc/src/lxc/start.c:2465,1
    - Dst: container_disk_unlock
      Src: /src/lxc/src/lxc/start.c:2466,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/start.c:2467,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/start.c:2472,1
    - Dst: lxc_rmdir_onedev
      Src: /src/lxc/src/lxc/start.c:2475,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/start.c:2478,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/start.c:2481,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - handler
    - name
    argTypes:
    - struct lxc_handler*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2436
    functionDepth: 6
    functionLinenumber: 2436
    functionLinenumberEnd: 2482
    functionName: lxc_destroy_container_on_signal
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 1
    functionsReached:
    - userns_exec_full
    - strnprintf
    - do_destroy_container
    - container_disk_lock
    - lxc_container_new
    - INFO
    - lxc_container_put
    - mod_all_rdeps
    - container_disk_unlock
    - lxc_rmdir_onedev
    - ERROR
    linkageType: ''
    returnType: void
    signature: "void lxc_destroy_container_on_signal(struct lxc_handler *handler,\n\t\t\t\t\t
      \   const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_rmdir_onedev
      Src: /src/lxc/src/lxc/start.c:2487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2484
    functionDepth: 3
    functionLinenumber: 2484
    functionLinenumberEnd: 2488
    functionName: lxc_rmdir_onedev_wrapper
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 0
    functionsReached:
    - lxc_rmdir_onedev
    linkageType: ''
    returnType: int
    signature: int lxc_rmdir_onedev_wrapper(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/start.c:2495,1
    - Dst: storage_destroy
      Src: /src/lxc/src/lxc/start.c:2503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handler
    argTypes:
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2490
    functionDepth: 5
    functionLinenumber: 2490
    functionLinenumberEnd: 2504
    functionName: do_destroy_container
    functionSourceFile: /src/lxc/src/lxc/start.c
    functionUses: 2
    functionsReached:
    - userns_exec_full
    - storage_destroy
    linkageType: ''
    returnType: bool
    signature: bool do_destroy_container(struct lxc_handler *handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.c:36,1
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.c:84,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/process_utils.c:84,1
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - flags
    - pidfd
    argTypes:
    - unsigned long
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 88
    functionName: lxc_raw_legacy_clone
    functionSourceFile: /src/lxc/src/lxc/process_utils.c
    functionUses: 1
    functionsReached:
    - prctl_arg
    - syscall
    linkageType: ''
    returnType: __returns_twice
    signature: __returns_twice lxc_raw_legacy_clone(unsigned long flags, int *pidfd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptr_to_u64
      Src: /src/lxc/src/lxc/process_utils.c:95,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/process_utils.c:100,1
    - Dst: lxc_clone3
      Src: /src/lxc/src/lxc/process_utils.c:106,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/process_utils.c:108,1
    - Dst: lxc_raw_legacy_clone
      Src: /src/lxc/src/lxc/process_utils.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - flags
    - pidfd
    argTypes:
    - unsigned long
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 113
    functionName: lxc_raw_clone
    functionSourceFile: /src/lxc/src/lxc/process_utils.c
    functionUses: 3
    functionsReached:
    - lxc_clone3
    - ret_errno
    - lxc_raw_legacy_clone
    - ptr_to_u64
    - SYSTRACE
    linkageType: ''
    returnType: __returns_twice
    signature: __returns_twice lxc_raw_clone(unsigned long flags, int *pidfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_raw_clone
      Src: /src/lxc/src/lxc/process_utils.c:120,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/process_utils.c:129,1
    - Dst: fn
      Src: /src/lxc/src/lxc/process_utils.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - args
    - flags
    - pidfd
    argTypes:
    - void*
    - unsigned long
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 132
    functionName: lxc_raw_clone_cb
    functionSourceFile: /src/lxc/src/lxc/process_utils.c
    functionUses: 2
    functionsReached:
    - _exit
    - fn
    - lxc_raw_clone
    linkageType: ''
    returnType: pid_t
    signature: "pid_t lxc_raw_clone_cb(int (*fn)(void *), void *args, unsigned long
      flags,\n\t\t       int *pidfd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/process_utils.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pidfd
    - sig
    - info
    - flags
    argTypes:
    - int
    - int
    - siginfo_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: lxc_raw_pidfd_send_signal
    functionSourceFile: /src/lxc/src/lxc/process_utils.c
    functionUses: 7
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: "int lxc_raw_pidfd_send_signal(int pidfd, int sig, siginfo_t *info,\n\t\t\t
      \     unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/process_utils.c:150,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/process_utils.c:152,1
    - Dst: __clone2
      Src: /src/lxc/src/lxc/process_utils.c:155,1
    - Dst: clone
      Src: /src/lxc/src/lxc/process_utils.c:157,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/process_utils.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - arg
    - flags
    - pidfd
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 163
    functionName: lxc_clone
    functionSourceFile: /src/lxc/src/lxc/process_utils.c
    functionUses: 2
    functionsReached:
    - syserror_set
    - __clone2
    - SYSERROR
    - malloc
    - clone
    linkageType: ''
    returnType: pid_t
    signature: pid_t lxc_clone(int (*fn)(void *), void *arg, int flags, int *pidfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: lxc_config_define
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_config_define(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: set_config_unsupported_key
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int set_config_unsupported_key(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: get_config_unsupported_key
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int get_config_unsupported_key(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: clr_config_unsupported_key
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int clr_config_unsupported_key(const char *key,\n\t\t\t\t      struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/confile.c:337,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: lxc_get_config_exact
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - strequal
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct lxc_config_t
    signature: struct lxc_config_t *lxc_get_config_exact(const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:352,1
    - Dst: strnlen
      Src: /src/lxc/src/lxc/confile.c:355,1
    - Dst: error_ret
      Src: /src/lxc/src/lxc/confile.c:357,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - entry
    - key
    argTypes:
    - struct lxc_config_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 360
    functionName: match_config_item
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - error_ret
    - strnlen
    - strequal
    - strnequal
    linkageType: ''
    returnType: int
    signature: int match_config_item(const struct lxc_config_t *entry, const char
      *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/confile.c:364,1
    - Dst: match_config_item
      Src: /src/lxc/src/lxc/confile.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: lxc_get_config
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 4
    functionsReached:
    - match_config_item
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct lxc_config_t
    signature: struct lxc_config_t *lxc_get_config(const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:384,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:385,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - entry
    - key
    argTypes:
    - struct lxc_config_net_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 386
    functionName: match_config_net_item
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strnequal
    - strlen
    - strequal
    linkageType: ''
    returnType: bool
    signature: "bool match_config_net_item(const struct lxc_config_net_t *entry,\n\t\t\t\t\t
      const char *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/confile.c:390,1
    - Dst: match_config_net_item
      Src: /src/lxc/src/lxc/confile.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: lxc_get_config_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - match_config_net_item
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct lxc_config_net_t
    signature: struct lxc_config_net_t *lxc_get_config_net(const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:405,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:406,1
    - Dst: clr_config_net
      Src: /src/lxc/src/lxc/confile.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: set_config_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net
    - syserror_set
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net(const char *key, const char *value,\n\t\t\t  struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:417,1
    - Dst: clr_config_net_type
      Src: /src/lxc/src/lxc/confile.c:419,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:420,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:423,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/confile.c:425,1
    - Dst: INIT_LIST_HEAD
      Src: /src/lxc/src/lxc/confile.c:426,1
    - Dst: lxc_list_init
      Src: /src/lxc/src/lxc/confile.c:427,1
    - Dst: lxc_veth_flag_to_mode
      Src: /src/lxc/src/lxc/confile.c:428,1
    - Dst: lxc_veth_mode_to_flag
      Src: /src/lxc/src/lxc/confile.c:429,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:430,1
    - Dst: lxc_macvlan_flag_to_mode
      Src: /src/lxc/src/lxc/confile.c:432,1
    - Dst: lxc_macvlan_mode_to_flag
      Src: /src/lxc/src/lxc/confile.c:433,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:434,1
    - Dst: lxc_ipvlan_flag_to_mode
      Src: /src/lxc/src/lxc/confile.c:436,1
    - Dst: lxc_ipvlan_mode_to_flag
      Src: /src/lxc/src/lxc/confile.c:437,1
    - Dst: lxc_ipvlan_flag_to_isolation
      Src: /src/lxc/src/lxc/confile.c:438,1
    - Dst: lxc_ipvlan_isolation_to_flag
      Src: /src/lxc/src/lxc/confile.c:439,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:440,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:442,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:444,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/confile.c:447,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:448,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/confile.c:451,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 455
    functionName: set_config_net_type
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_ipvlan_flag_to_isolation
    - INIT_LIST_HEAD
    - strequal
    - ret_errno
    - lxc_veth_mode_to_flag
    - lxc_veth_flag_to_mode
    - strlcpy
    - log_error
    - lxc_ipvlan_mode_to_flag
    - clr_config_net_type
    - lxc_list_init
    - lxc_macvlan_mode_to_flag
    - lxc_ipvlan_flag_to_mode
    - lxc_config_value_empty
    - lxc_ipvlan_isolation_to_flag
    - lxc_macvlan_flag_to_mode
    linkageType: ''
    returnType: int
    signature: "int set_config_net_type(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:463,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:465,1
    - Dst: clr_config_net_flags
      Src: /src/lxc/src/lxc/confile.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: set_config_net_flags
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_config_value_empty
    - clr_config_net_flags
    linkageType: ''
    returnType: int
    signature: "int set_config_net_flags(const char *key, const char *value,\n\t\t\t\tstruct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/confile.c:476,1
    - Dst: netns_getifaddrs
      Src: /src/lxc/src/lxc/confile.c:484,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:485,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:494,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:494,1
    - Dst: set_config_net_type
      Src: /src/lxc/src/lxc/confile.c:495,1
    - Dst: set_config_net_link
      Src: /src/lxc/src/lxc/confile.c:498,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile.c:501,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/confile.c:505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - value
    - lxc_conf
    - netdev
    argTypes:
    - char*
    - struct lxc_conf*
    - struct lxc_netdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 512
    functionName: create_matched_ifnames
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - netns_getifaddrs
    - strnequal
    - strlen
    - set_config_net_type
    - set_config_net_link
    - call_cleaner
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int create_matched_ifnames(const char *value, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \ struct lxc_netdev *netdev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:521,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:523,1
    - Dst: clr_config_net_link
      Src: /src/lxc/src/lxc/confile.c:524,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:526,1
    - Dst: create_matched_ifnames
      Src: /src/lxc/src/lxc/confile.c:527,1
    - Dst: network_ifname
      Src: /src/lxc/src/lxc/confile.c:529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 532
    functionName: set_config_net_link
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    - strlen
    - lxc_config_value_empty
    - network_ifname
    - clr_config_net_link
    - create_matched_ifnames
    linkageType: ''
    returnType: int
    signature: "int set_config_net_link(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:542,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:544,1
    - Dst: clr_config_net_l2proxy
      Src: /src/lxc/src/lxc/confile.c:545,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:547,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:549,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 561
    functionName: set_config_net_l2proxy
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_l2proxy
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_l2proxy(const char *key, const char *value,\n\t\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:569,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:571,1
    - Dst: clr_config_net_name
      Src: /src/lxc/src/lxc/confile.c:572,1
    - Dst: network_ifname
      Src: /src/lxc/src/lxc/confile.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 575
    functionName: set_config_net_name
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_name
    - network_ifname
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_name(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:584,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:587,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:589,1
    - Dst: clr_config_net_veth_mode
      Src: /src/lxc/src/lxc/confile.c:590,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:593,1
    - Dst: lxc_veth_mode_to_flag
      Src: /src/lxc/src/lxc/confile.c:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 596
    functionName: set_config_net_veth_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_veth_mode
    - lxc_veth_mode_to_flag
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_mode(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:605,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:608,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:610,1
    - Dst: clr_config_net_veth_n_rxqueues
      Src: /src/lxc/src/lxc/confile.c:611,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/confile.c:613,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:614,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 621
    functionName: set_config_net_veth_n_rxqueues
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_veth_n_rxqueues
    - lxc_safe_int
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_n_rxqueues(const char *key, const char *value,\n\t\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:630,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:633,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:635,1
    - Dst: clr_config_net_veth_n_txqueues
      Src: /src/lxc/src/lxc/confile.c:636,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/confile.c:638,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:639,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 646
    functionName: set_config_net_veth_n_txqueues
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_veth_n_txqueues
    - lxc_safe_int
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_n_txqueues(const char *key, const char *value,\n\t\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:654,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:657,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:659,1
    - Dst: clr_config_net_veth_pair
      Src: /src/lxc/src/lxc/confile.c:660,1
    - Dst: network_ifname
      Src: /src/lxc/src/lxc/confile.c:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 664
    functionName: set_config_net_veth_pair
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_veth_pair
    - network_ifname
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_pair(const char *key, const char *value,\n\t\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:673,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:676,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:678,1
    - Dst: clr_config_net_veth_vlan_id
      Src: /src/lxc/src/lxc/confile.c:679,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:681,1
    - Dst: get_u16
      Src: /src/lxc/src/lxc/confile.c:686,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:688,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:691,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 698
    functionName: set_config_net_veth_vlan_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - clr_config_net_veth_vlan_id
    - lxc_config_value_empty
    - get_u16
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_vlan_id(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:710,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:713,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:715,1
    - Dst: clr_config_net_veth_vlan_tagged_id
      Src: /src/lxc/src/lxc/confile.c:716,1
    - Dst: get_u16
      Src: /src/lxc/src/lxc/confile.c:718,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:720,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:723,1
    - Dst: lxc_list_new
      Src: /src/lxc/src/lxc/confile.c:725,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:727,1
    - Dst: UINT_TO_PTR
      Src: /src/lxc/src/lxc/confile.c:729,1
    - Dst: lxc_list_add_tail
      Src: /src/lxc/src/lxc/confile.c:731,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 734
    functionName: set_config_net_veth_vlan_tagged_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_list_new
    - ret_errno
    - clr_config_net_veth_vlan_tagged_id
    - move_ptr
    - lxc_list_add_tail
    - lxc_config_value_empty
    - UINT_TO_PTR
    - get_u16
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_vlan_tagged_id(const char *key, const char
      *value,\n\t\t\t\t\t      struct lxc_conf *lxc_conf,\n\t\t\t\t\t      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:742,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:745,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:747,1
    - Dst: clr_config_net_macvlan_mode
      Src: /src/lxc/src/lxc/confile.c:748,1
    - Dst: lxc_macvlan_mode_to_flag
      Src: /src/lxc/src/lxc/confile.c:750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 751
    functionName: set_config_net_macvlan_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_macvlan_mode
    - lxc_macvlan_mode_to_flag
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_macvlan_mode(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:759,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:762,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:764,1
    - Dst: clr_config_net_ipvlan_mode
      Src: /src/lxc/src/lxc/confile.c:765,1
    - Dst: lxc_ipvlan_mode_to_flag
      Src: /src/lxc/src/lxc/confile.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 768
    functionName: set_config_net_ipvlan_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_ipvlan_mode
    - syserror_set
    - ret_errno
    - lxc_ipvlan_mode_to_flag
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_ipvlan_mode(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:776,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:779,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:781,1
    - Dst: clr_config_net_ipvlan_isolation
      Src: /src/lxc/src/lxc/confile.c:782,1
    - Dst: lxc_ipvlan_isolation_to_flag
      Src: /src/lxc/src/lxc/confile.c:784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 785
    functionName: set_config_net_ipvlan_isolation
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - ret_errno
    - clr_config_net_ipvlan_isolation
    - lxc_ipvlan_isolation_to_flag
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_net_ipvlan_isolation(const char *key, const char *value,\n\t\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:794,1
    - Dst: clr_config_net_hwaddr
      Src: /src/lxc/src/lxc/confile.c:796,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:797,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:800,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:802,1
    - Dst: rand_complete_hwaddr
      Src: /src/lxc/src/lxc/confile.c:804,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:805,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 809
    functionName: set_config_net_hwaddr
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - clr_config_net_hwaddr
    - rand_complete_hwaddr
    - move_ptr
    - lxc_config_value_empty
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_net_hwaddr(const char *key, const char *value,\n\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:818,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:821,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:823,1
    - Dst: clr_config_net_vlan_id
      Src: /src/lxc/src/lxc/confile.c:824,1
    - Dst: get_u16
      Src: /src/lxc/src/lxc/confile.c:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 811
    functionDepth: 2
    functionLinenumber: 811
    functionLinenumberEnd: 831
    functionName: set_config_net_vlan_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - get_u16
    - ret_errno
    - lxc_config_value_empty
    - clr_config_net_vlan_id
    linkageType: ''
    returnType: int
    signature: "int set_config_net_vlan_id(const char *key, const char *value,\n\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:839,1
    - Dst: clr_config_net_mtu
      Src: /src/lxc/src/lxc/confile.c:841,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:842,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 846
    functionName: set_config_net_mtu
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_config_value_empty
    - ret_errno
    - clr_config_net_mtu
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_net_mtu(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:859,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:861,1
    - Dst: clr_config_net_ipv4_address
      Src: /src/lxc/src/lxc/confile.c:862,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:864,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:866,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:868,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:870,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/confile.c:872,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/confile.c:878,1
    - Dst: inet_pton
      Src: /src/lxc/src/lxc/confile.c:884,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:886,1
    - Dst: inet_pton
      Src: /src/lxc/src/lxc/confile.c:889,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:891,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:898,1
    - Dst: config_ip_prefix
      Src: /src/lxc/src/lxc/confile.c:900,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:902,1
    - Dst: htonl
      Src: /src/lxc/src/lxc/confile.c:915,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:920,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:921,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 924
    functionName: set_config_net_ipv4_address
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_safe_uint
    - inet_pton
    - config_ip_prefix
    - htonl
    - clr_config_net_ipv4_address
    - strstr
    - list_add_tail
    - move_ptr
    - lxc_config_value_empty
    - zalloc
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_net_ipv4_address(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:932,1
    - Dst: clr_config_net_ipv4_gateway
      Src: /src/lxc/src/lxc/confile.c:934,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:935,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:938,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:941,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:949,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:951,1
    - Dst: inet_pton
      Src: /src/lxc/src/lxc/confile.c:953,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:955,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:957,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 962
    functionName: set_config_net_ipv4_gateway
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - inet_pton
    - move_ptr
    - clr_config_net_ipv4_gateway
    - lxc_config_value_empty
    - zalloc
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_net_ipv4_gateway(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:974,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:977,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:979,1
    - Dst: clr_config_net_veth_ipv4_route
      Src: /src/lxc/src/lxc/confile.c:980,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:982,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:984,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:986,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:988,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:990,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:992,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:997,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1001,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1003,1
    - Dst: inet_pton
      Src: /src/lxc/src/lxc/confile.c:1005,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1007,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1009,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1010,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 1013
    functionName: set_config_net_veth_ipv4_route
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - ret_errno
    - lxc_safe_uint
    - inet_pton
    - move_ptr
    - clr_config_net_veth_ipv4_route
    - list_add_tail
    - strchr
    - lxc_config_value_empty
    - zalloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_ipv4_route(const char *key, const char *value,\n\t\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1025,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1027,1
    - Dst: clr_config_net_ipv6_address
      Src: /src/lxc/src/lxc/confile.c:1028,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1030,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1032,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1034,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1036,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/confile.c:1039,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1044,1
    - Dst: inet_pton
      Src: /src/lxc/src/lxc/confile.c:1049,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:1051,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1053,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1054,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1057
    functionName: set_config_net_ipv6_address
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_net_ipv6_address
    - ret_errno
    - lxc_safe_uint
    - inet_pton
    - move_ptr
    - list_add_tail
    - strstr
    - lxc_config_value_empty
    - zalloc
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_net_ipv6_address(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1065,1
    - Dst: clr_config_net_ipv6_gateway
      Src: /src/lxc/src/lxc/confile.c:1067,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1068,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1071,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1074,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1082,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1084,1
    - Dst: inet_pton
      Src: /src/lxc/src/lxc/confile.c:1086,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:1088,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1091,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1096
    functionName: set_config_net_ipv6_gateway
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - inet_pton
    - move_ptr
    - clr_config_net_ipv6_gateway
    - lxc_config_value_empty
    - zalloc
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_net_ipv6_gateway(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1108,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1111,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1113,1
    - Dst: clr_config_net_veth_ipv6_route
      Src: /src/lxc/src/lxc/confile.c:1114,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1116,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1118,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1120,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1122,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:1124,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1126,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1131,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1135,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1137,1
    - Dst: inet_pton
      Src: /src/lxc/src/lxc/confile.c:1139,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1141,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1143,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1144,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1147
    functionName: set_config_net_veth_ipv6_route
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - ret_errno
    - lxc_safe_uint
    - inet_pton
    - move_ptr
    - list_add_tail
    - strchr
    - clr_config_net_veth_ipv6_route
    - lxc_config_value_empty
    - zalloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_net_veth_ipv6_route(const char *key, const char *value,\n\t\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1155,1
    - Dst: clr_config_net_script_up
      Src: /src/lxc/src/lxc/confile.c:1157,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1158,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1149
    functionDepth: 2
    functionLinenumber: 1149
    functionLinenumberEnd: 1162
    functionName: set_config_net_script_up
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_string_item
    - ret_errno
    - lxc_config_value_empty
    - clr_config_net_script_up
    linkageType: ''
    returnType: int
    signature: "int set_config_net_script_up(const char *key, const char *value,\n\t\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1170,1
    - Dst: clr_config_net_script_down
      Src: /src/lxc/src/lxc/confile.c:1172,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1173,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1164
    functionDepth: 2
    functionLinenumber: 1164
    functionLinenumberEnd: 1177
    functionName: set_config_net_script_down
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_string_item
    - ret_errno
    - lxc_config_value_empty
    - clr_config_net_script_down
    linkageType: ''
    returnType: int
    signature: "int set_config_net_script_down(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1184,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1186,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1188,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1189,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - lxc_conf
    - which
    - hook
    argTypes:
    - struct lxc_conf*
    - int
    - __owns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1193
    functionName: add_hook
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - zalloc
    - move_ptr
    - list_add_tail
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int add_hook(struct lxc_conf *lxc_conf, int which, __owns char *hook)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1199,1
    - Dst: clr_config_seccomp_allow_nesting
      Src: /src/lxc/src/lxc/confile.c:1200,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1202,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1206,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1212
    functionName: set_config_seccomp_allow_nesting
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_seccomp_allow_nesting
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_seccomp_allow_nesting(const char *key, const char *value,\n\t\t\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1218,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1214
    functionDepth: 2
    functionLinenumber: 1214
    functionLinenumberEnd: 1222
    functionName: set_config_seccomp_notify_cookie
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_seccomp_notify_cookie(const char *key, const char *value,\n\t\t\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1230,1
    - Dst: clr_config_seccomp_notify_proxy
      Src: /src/lxc/src/lxc/confile.c:1231,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:1233,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1234,1
    - Dst: lxc_unix_sockaddr
      Src: /src/lxc/src/lxc/confile.c:1237,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1244
    functionName: set_config_seccomp_notify_proxy
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - clr_config_seccomp_notify_proxy
    - lxc_unix_sockaddr
    - strnequal
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_seccomp_notify_proxy(const char *key, const char *value,\n\t\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:1250,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1246
    functionDepth: 4
    functionLinenumber: 1246
    functionLinenumberEnd: 1254
    functionName: set_config_seccomp_profile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - set_config_path_item
    linkageType: ''
    returnType: int
    signature: "int set_config_seccomp_profile(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1260
    functionName: set_config_execute_cmd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_execute_cmd(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1262
    functionDepth: 2
    functionLinenumber: 1262
    functionLinenumberEnd: 1266
    functionName: set_config_init_cmd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_init_cmd(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1268
    functionDepth: 4
    functionLinenumber: 1268
    functionLinenumberEnd: 1272
    functionName: set_config_init_cwd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_path_item
    linkageType: ''
    returnType: int
    signature: "int set_config_init_cwd(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1279,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1290
    functionName: set_config_init_uid
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_init_uid(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1297,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1308
    functionName: set_config_init_gid
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_init_gid(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1319,1
    - Dst: clr_config_init_groups
      Src: /src/lxc/src/lxc/confile.c:1320,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1322,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/confile.c:1326,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:1330,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:1334,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/confile.c:1337,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1339,1
    - Dst: strcpy
      Src: /src/lxc/src/lxc/confile.c:1349,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/confile.c:1351,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1356,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:1358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1366
    functionName: set_config_init_groups
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strcpy
    - ret_errno
    - lxc_safe_uint
    - clr_config_init_groups
    - lxc_config_value_empty
    - realloc
    - lxc_iterate_parts
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_init_groups(const char *key, const char *value,\n\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1373,1
    - Dst: lxc_clear_hooks
      Src: /src/lxc/src/lxc/confile.c:1374,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1376,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:1377,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1379,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1381,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1383,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1384,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1384,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1385,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1386,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1386,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1387,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1388,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1388,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1389,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1390,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1390,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1391,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1392,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1392,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1393,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1394,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1394,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1395,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1396,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1396,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1397,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1398,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1398,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1399,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1400,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1400,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1401,1
    - Dst: add_hook
      Src: /src/lxc/src/lxc/confile.c:1402,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1402,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1404,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1405
    functionName: set_config_hooks
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - move_ptr
    - lxc_clear_hooks
    - lxc_config_value_empty
    - strdup
    - log_error_errno
    - add_hook
    linkageType: ''
    returnType: int
    signature: "int set_config_hooks(const char *key, const char *value,\n\t\t\t    struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1413,1
    - Dst: clr_config_hooks_version
      Src: /src/lxc/src/lxc/confile.c:1414,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1416,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1426
    functionName: set_config_hooks_version
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - syserror_set
    - lxc_config_value_empty
    - clr_config_hooks_version
    linkageType: ''
    returnType: int
    signature: "int set_config_hooks_version(const char *key, const char *value,\n\t\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_parse_arch
      Src: /src/lxc/src/lxc/confile.c:1434,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/confile.c:1436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1440
    functionName: set_config_personality
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror
    - lxc_config_parse_arch
    linkageType: ''
    returnType: int
    signature: "int set_config_personality(const char *key, const char *value,\n\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1448,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1453,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1460
    functionName: set_config_pty_max
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_pty_max(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1473,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1481,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1486,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1495,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/confile.c:1502,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1506
    functionName: set_config_start
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_int
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_start(const char *key, const char *value,\n\t\t\t    struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1511,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1516,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1517,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1520
    functionName: set_config_monitor
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_safe_uint
    - strequal
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_monitor(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1525,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1530,1
    - Dst: sig_parse
      Src: /src/lxc/src/lxc/confile.c:1533,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1535,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1522
    functionDepth: 4
    functionLinenumber: 1522
    functionLinenumberEnd: 1542
    functionName: set_config_monitor_signal_pdeath
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - sig_parse
    - strequal
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_monitor_signal_pdeath(const char *key, const char *value,\n\t\t\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1550,1
    - Dst: lxc_clear_groups
      Src: /src/lxc/src/lxc/confile.c:1551,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1553,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1555,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/confile.c:1561,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1565,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1567,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1569,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1571,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1573,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1574,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1544
    functionDepth: 2
    functionLinenumber: 1544
    functionLinenumberEnd: 1579
    functionName: set_config_group
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - move_ptr
    - list_add_tail
    - lxc_config_value_empty
    - lxc_clear_groups
    - zalloc
    - lxc_iterate_parts
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_group(const char *key, const char *value,\n\t\t\t    struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1588,1
    - Dst: lxc_clear_environment
      Src: /src/lxc/src/lxc/confile.c:1589,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1591,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1593,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1595,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1597,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:1599,1
    - Dst: getenv
      Src: /src/lxc/src/lxc/confile.c:1601,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1607,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1609,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1611,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1613,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1614,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1616,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - value
    - environment
    argTypes:
    - char*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1581
    functionDepth: 2
    functionLinenumber: 1581
    functionLinenumberEnd: 1620
    functionName: set_config_environment_impl
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_environment
    - ret_errno
    - move_ptr
    - getenv
    - list_add_tail
    - strchr
    - lxc_config_value_empty
    - zalloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_environment_impl(const char *value,\n\t\t\t\t       struct
      list_head *environment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_environment_impl
      Src: /src/lxc/src/lxc/confile.c:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1622
    functionDepth: 3
    functionLinenumber: 1622
    functionLinenumberEnd: 1626
    functionName: set_config_environment
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_environment_impl
    linkageType: ''
    returnType: int
    signature: "int set_config_environment(const char *key, const char *value,\n\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_environment_impl
      Src: /src/lxc/src/lxc/confile.c:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1628
    functionDepth: 3
    functionLinenumber: 1628
    functionLinenumberEnd: 1632
    functionName: set_config_environment_runtime
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_environment_impl
    linkageType: ''
    returnType: int
    signature: "int set_config_environment_runtime(const char *key, const char* value,\n\t\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_environment_impl
      Src: /src/lxc/src/lxc/confile.c:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1638
    functionName: set_config_environment_hooks
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_environment_impl
    linkageType: ''
    returnType: int
    signature: "int set_config_environment_hooks(const char *key, const char* value,\n\t\t\t\t\tstruct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1646,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1658
    functionName: set_config_tty_max
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_tty_max(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_string_item_max
      Src: /src/lxc/src/lxc/confile.c:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1660
    functionDepth: 3
    functionLinenumber: 1660
    functionLinenumberEnd: 1665
    functionName: set_config_tty_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_string_item_max
    linkageType: ''
    returnType: int
    signature: "int set_config_tty_dir(const char *key, const char *value,\n\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1671,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1667
    functionDepth: 2
    functionLinenumber: 1667
    functionLinenumberEnd: 1675
    functionName: set_config_apparmor_profile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_apparmor_profile(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1685,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1690,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1695,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1677
    functionDepth: 1
    functionLinenumber: 1677
    functionLinenumberEnd: 1701
    functionName: set_config_apparmor_allow_incomplete
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_apparmor_allow_incomplete(const char *key,\n\t\t\t\t\t\tconst
      char *value,\n\t\t\t\t\t\tstruct lxc_conf *lxc_conf,\n\t\t\t\t\t\tvoid *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1711,1
    - Dst: clr_config_apparmor_allow_nesting
      Src: /src/lxc/src/lxc/confile.c:1712,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1714,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1719,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1703
    functionDepth: 1
    functionLinenumber: 1703
    functionLinenumberEnd: 1725
    functionName: set_config_apparmor_allow_nesting
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - lxc_safe_uint
    - ret_errno
    - clr_config_apparmor_allow_nesting
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_apparmor_allow_nesting(const char *key,\n\t\t\t\t\t
      \    const char *value,\n\t\t\t\t\t     struct lxc_conf *lxc_conf,\n\t\t\t\t\t
      \    void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1736,1
    - Dst: lxc_clear_apparmor_raw
      Src: /src/lxc/src/lxc/confile.c:1737,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1739,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1741,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1743,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1745,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1747,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1748,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1749,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1755
    functionName: set_config_apparmor_raw
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - syserror_set
    - move_ptr
    - list_add_tail
    - lxc_clear_apparmor_raw
    - lxc_config_value_empty
    - zalloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_apparmor_raw(const char *key,\n\t\t\t\t   const char
      *value,\n\t\t\t\t   struct lxc_conf *lxc_conf,\n\t\t\t\t   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1761,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1757
    functionDepth: 2
    functionLinenumber: 1757
    functionLinenumberEnd: 1765
    functionName: set_config_selinux_context
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_selinux_context(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:1771,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1767
    functionDepth: 2
    functionLinenumber: 1767
    functionLinenumberEnd: 1775
    functionName: set_config_selinux_context_keyring
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_selinux_context_keyring(const char *key, const char
      *value,\n\t\t\t\t\t      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_bool_item
      Src: /src/lxc/src/lxc/confile.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1777
    functionDepth: 2
    functionLinenumber: 1777
    functionLinenumberEnd: 1781
    functionName: set_config_keyring_session
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_bool_item
    linkageType: ''
    returnType: int
    signature: "int set_config_keyring_session(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1788,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:1789,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:1797,1
    - Dst: lxc_log_set_file
      Src: /src/lxc/src/lxc/confile.c:1799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - key
    - value
    - c
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1783
    functionDepth: 4
    functionLinenumber: 1783
    functionLinenumberEnd: 1802
    functionName: set_config_log_file
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_log_set_file
    - set_config_path_item
    - free_disarm
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_log_file(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1809,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/confile.c:1817,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1819,1
    - Dst: lxc_log_priority_to_int
      Src: /src/lxc/src/lxc/confile.c:1821,1
    - Dst: lxc_log_set_level
      Src: /src/lxc/src/lxc/confile.c:1830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1831
    functionName: set_config_log_level
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_safe_int
    - lxc_log_set_level
    - lxc_config_value_empty
    - lxc_log_priority_to_int
    linkageType: ''
    returnType: int
    signature: "int set_config_log_level(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1838,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:1843,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1845,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1851
    functionName: set_config_autodev
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_autodev(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1856,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/confile.c:1861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1865
    functionName: set_config_autodev_tmpfs_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_int
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_autodev_tmpfs_size(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1872,1
    - Dst: sig_parse
      Src: /src/lxc/src/lxc/confile.c:1877,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1867
    functionDepth: 4
    functionLinenumber: 1867
    functionLinenumberEnd: 1884
    functionName: set_config_signal_halt
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - sig_parse
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_signal_halt(const char *key, const char *value,\n\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1891,1
    - Dst: sig_parse
      Src: /src/lxc/src/lxc/confile.c:1896,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1886
    functionDepth: 4
    functionLinenumber: 1886
    functionLinenumberEnd: 1903
    functionName: set_config_signal_reboot
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - sig_parse
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_signal_reboot(const char *key, const char *value,\n\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1910,1
    - Dst: sig_parse
      Src: /src/lxc/src/lxc/confile.c:1915,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1905
    functionDepth: 4
    functionLinenumber: 1905
    functionLinenumberEnd: 1922
    functionName: set_config_signal_stop
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - sig_parse
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_signal_stop(const char *key, const char *value,\n\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/confile.c:1927,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1931,1
    - Dst: lxc_clear_cgroups
      Src: /src/lxc/src/lxc/confile.c:1932,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1941,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:1944,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1945,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1949,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:1951,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1953,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1955,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1957,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:1959,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1961,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1966,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:1968,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:1969,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - version
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1924
    functionDepth: 2
    functionLinenumber: 1924
    functionLinenumberEnd: 1972
    functionName: __set_config_cgroup_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strnequal
    - move_ptr
    - list_add_tail
    - zalloc
    - lxc_config_value_empty
    - call_cleaner
    - strdup
    - lxc_clear_cgroups
    linkageType: ''
    returnType: int
    signature: "int __set_config_cgroup_controller(const char *key, const char *value,\n\t\t\t\t\t
      \ struct lxc_conf *lxc_conf, int version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __set_config_cgroup_controller
      Src: /src/lxc/src/lxc/confile.c:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1974
    functionDepth: 3
    functionLinenumber: 1974
    functionLinenumberEnd: 1979
    functionName: set_config_cgroup_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - __set_config_cgroup_controller
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup_controller(const char *key, const char *value,\n\t\t\t\t\tstruct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __set_config_cgroup_controller
      Src: /src/lxc/src/lxc/confile.c:1984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1981
    functionDepth: 3
    functionLinenumber: 1981
    functionLinenumberEnd: 1986
    functionName: set_config_cgroup2_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - __set_config_cgroup_controller
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup2_controller(const char *key, const char *value,\n\t\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:1991,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:1992,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:1994,1
    - Dst: clr_config_cgroup_dir
      Src: /src/lxc/src/lxc/confile.c:1995,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/confile.c:1997,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:1998,1
    - Dst: dotdot
      Src: /src/lxc/src/lxc/confile.c:2000,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2001,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1988
    functionDepth: 4
    functionLinenumber: 1988
    functionLinenumberEnd: 2004
    functionName: set_config_cgroup_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    - syserror_set
    - clr_config_cgroup_dir
    - set_config_path_item
    - abspath
    - dotdot
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup_dir(const char *key, const char *value,\n\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2009,1
    - Dst: clr_config_cgroup_monitor_dir
      Src: /src/lxc/src/lxc/confile.c:2010,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/confile.c:2012,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2013,1
    - Dst: dotdot
      Src: /src/lxc/src/lxc/confile.c:2015,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2016,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2006
    functionDepth: 4
    functionLinenumber: 2006
    functionLinenumberEnd: 2019
    functionName: set_config_cgroup_monitor_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - set_config_path_item
    - abspath
    - dotdot
    - clr_config_cgroup_monitor_dir
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup_monitor_dir(const char *key, const char *value,\n\t\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2024,1
    - Dst: clr_config_cgroup_monitor_pivot_dir
      Src: /src/lxc/src/lxc/confile.c:2025,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/confile.c:2027,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2028,1
    - Dst: dotdot
      Src: /src/lxc/src/lxc/confile.c:2030,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2031,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2021
    functionDepth: 4
    functionLinenumber: 2021
    functionLinenumberEnd: 2034
    functionName: set_config_cgroup_monitor_pivot_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - set_config_path_item
    - abspath
    - dotdot
    - lxc_config_value_empty
    - clr_config_cgroup_monitor_pivot_dir
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup_monitor_pivot_dir(const char *key, const char
      *value,\n\t\t\t\t\t struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2040,1
    - Dst: clr_config_cgroup_container_dir
      Src: /src/lxc/src/lxc/confile.c:2041,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/confile.c:2043,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2044,1
    - Dst: dotdot
      Src: /src/lxc/src/lxc/confile.c:2046,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2047,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2036
    functionDepth: 4
    functionLinenumber: 2036
    functionLinenumberEnd: 2050
    functionName: set_config_cgroup_container_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - set_config_path_item
    - abspath
    - dotdot
    - lxc_config_value_empty
    - clr_config_cgroup_container_dir
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup_container_dir(const char *key, const char *value,\n\t\t\t\t\t
      \  struct lxc_conf *lxc_conf,\n\t\t\t\t\t   void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2057,1
    - Dst: clr_config_cgroup_container_inner_dir
      Src: /src/lxc/src/lxc/confile.c:2058,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/confile.c:2060,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2061,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:2063,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2063,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2063,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2064,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:2066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2052
    functionDepth: 2
    functionLinenumber: 2052
    functionLinenumberEnd: 2067
    functionName: set_config_cgroup_container_inner_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - strequal
    - strchr
    - abspath
    - clr_config_cgroup_container_inner_dir
    - lxc_config_value_empty
    - log_error_errno
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup_container_inner_dir(const char *key,\n\t\t\t\t\t\t
      const char *value,\n\t\t\t\t\t\t struct lxc_conf *lxc_conf,\n\t\t\t\t\t\t void
      *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2075,1
    - Dst: clr_config_cgroup_relative
      Src: /src/lxc/src/lxc/confile.c:2076,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:2078,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2093
    functionName: set_config_cgroup_relative
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - clr_config_cgroup_relative
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_cgroup_relative(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:2099,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2099,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2101,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/confile.c:2106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - value
    - res
    argTypes:
    - char**
    - rlim_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2113
    functionName: parse_limit_value
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strnequal
    - strtoull
    - STRLITERALLEN
    linkageType: ''
    returnType: bool
    signature: bool parse_limit_value(const char **value, rlim_t *res)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/confile.c:2118,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2123,1
    - Dst: lxc_clear_limits
      Src: /src/lxc/src/lxc/confile.c:2124,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:2126,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2126,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2127,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2129,1
    - Dst: parse_limit_value
      Src: /src/lxc/src/lxc/confile.c:2132,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2133,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/confile.c:2138,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2144,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/confile.c:2146,1
    - Dst: parse_limit_value
      Src: /src/lxc/src/lxc/confile.c:2151,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2152,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/confile.c:2157,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2161,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:2168,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2169,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:2176,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2178,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2180,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2182,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:2185,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2186,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2115
    functionDepth: 2
    functionLinenumber: 2115
    functionLinenumberEnd: 2189
    functionName: set_config_prlimit
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - parse_limit_value
    - STRLITERALLEN
    - isspace
    - strnequal
    - strequal
    - move_ptr
    - list_add_tail
    - zalloc
    - lxc_config_value_empty
    - list_for_each_entry
    - lxc_clear_limits
    - call_cleaner
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_prlimit(const char *key, const char *value,\n\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/confile.c:2194,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2197,1
    - Dst: clr_config_sysctl
      Src: /src/lxc/src/lxc/confile.c:2198,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:2200,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2200,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2201,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2203,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile.c:2204,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2205,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile.c:2208,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2211,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2214,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2216,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:2218,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2219,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:2224,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2226,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2228,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2230,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2232,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2234,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:2236,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2240
    functionName: set_config_sysctl
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    - STRLITERALLEN
    - list_for_each_entry_safe
    - strnequal
    - free
    - move_ptr
    - list_add_tail
    - zalloc
    - is_empty_string
    - lxc_config_value_empty
    - call_cleaner
    - clr_config_sysctl
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_sysctl(const char *key, const char *value,\n\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/confile.c:2245,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2248,1
    - Dst: clr_config_proc
      Src: /src/lxc/src/lxc/confile.c:2249,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:2251,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2251,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2252,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2254,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2256,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:2258,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2260,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2262,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2264,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2266,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2268,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:2270,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2242
    functionDepth: 1
    functionLinenumber: 2242
    functionLinenumberEnd: 2274
    functionName: set_config_proc
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - STRLITERALLEN
    - strnequal
    - move_ptr
    - list_add_tail
    - zalloc
    - lxc_config_value_empty
    - call_cleaner
    - clr_config_proc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_proc(const char *key, const char *value,\n\t\t\t    struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2284,1
    - Dst: lxc_clear_idmaps
      Src: /src/lxc/src/lxc/confile.c:2285,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:2287,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2289,1
    - Dst: parse_idmaps
      Src: /src/lxc/src/lxc/confile.c:2291,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2293,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/confile.c:2295,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2301,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:2306,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2316,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2276
    functionDepth: 3
    functionLinenumber: 2276
    functionLinenumberEnd: 2319
    functionName: set_config_idmaps
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - parse_idmaps
    - move_ptr
    - lxc_clear_idmaps
    - list_add_tail
    - INFO
    - lxc_config_value_empty
    - zalloc
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_idmaps(const char *key, const char *value,\n\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2324,1
    - Dst: clr_config_mount_fstab
      Src: /src/lxc/src/lxc/confile.c:2325,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2326,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2321
    functionDepth: 4
    functionLinenumber: 2321
    functionLinenumberEnd: 2330
    functionName: set_config_mount_fstab
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_path_item
    - clr_config_mount_fstab
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_mount_fstab(const char *key, const char *value,\n\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2379,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2384,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2386,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/confile.c:2388,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2392,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2395,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:2396,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2396,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2403,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2412,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2414,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2416,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2418,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:2420,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2426,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2428,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:2430,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2431,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:2433,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2434,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2332
    functionDepth: 1
    functionLinenumber: 2332
    functionLinenumberEnd: 2439
    functionName: set_config_mount_auto
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - STRLITERALLEN
    - strnequal
    - move_ptr
    - strchr
    - free_disarm
    - lxc_config_value_empty
    - lxc_iterate_parts
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_mount_auto(const char *key, const char *value,\n\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2447,1
    - Dst: lxc_clear_mount_entries
      Src: /src/lxc/src/lxc/confile.c:2448,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:2450,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2452,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2454,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2456,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2458,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:2459,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2441
    functionDepth: 2
    functionLinenumber: 2441
    functionLinenumberEnd: 2463
    functionName: set_config_mount
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - move_ptr
    - list_add_tail
    - lxc_config_value_empty
    - zalloc
    - strdup
    - lxc_clear_mount_entries
    linkageType: ''
    returnType: int
    signature: "int set_config_mount(const char *key, const char *value,\n\t\t\t    struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_mount
      Src: /src/lxc/src/lxc/confile.c:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - lxc_conf
    argTypes:
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2465
    functionDepth: 3
    functionLinenumber: 2465
    functionLinenumberEnd: 2467
    functionName: add_elem_to_mount_list
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - set_config_mount
    linkageType: ''
    returnType: int
    signature: int add_elem_to_mount_list(const char *value, struct lxc_conf *lxc_conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/confile.c:2477,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2482,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2484,1
    - Dst: lxc_clear_config_caps
      Src: /src/lxc/src/lxc/confile.c:2486,1
    - Dst: parse_cap
      Src: /src/lxc/src/lxc/confile.c:2490,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2493,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/confile.c:2495,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:2499,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2501,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2503,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2505,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/confile.c:2508,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - conf
    - caps
    - keep
    argTypes:
    - struct lxc_conf*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2469
    functionDepth: 2
    functionLinenumber: 2469
    functionLinenumberEnd: 2513
    functionName: add_cap_entry
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - strequal
    - ret_errno
    - parse_cap
    - move_ptr
    - list_add_tail
    - lxc_clear_config_caps
    - INFO
    - zalloc
    - lxc_iterate_parts
    - strdup
    linkageType: ''
    returnType: int
    signature: int add_cap_entry(struct lxc_conf *conf, char *caps, bool keep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2521,1
    - Dst: lxc_clear_config_caps
      Src: /src/lxc/src/lxc/confile.c:2522,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2524,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2526,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/confile.c:2528,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2529,1
    - Dst: add_cap_entry
      Src: /src/lxc/src/lxc/confile.c:2531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2515
    functionDepth: 3
    functionLinenumber: 2515
    functionLinenumberEnd: 2537
    functionName: set_config_cap_keep
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - syserror_set
    - add_cap_entry
    - lxc_clear_config_caps
    - lxc_config_value_empty
    - strdup
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_cap_keep(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2545,1
    - Dst: lxc_clear_config_caps
      Src: /src/lxc/src/lxc/confile.c:2546,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2549,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2551,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2553,1
    - Dst: add_cap_entry
      Src: /src/lxc/src/lxc/confile.c:2555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2539
    functionDepth: 3
    functionLinenumber: 2539
    functionLinenumberEnd: 2561
    functionName: set_config_cap_drop
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - syserror_set
    - add_cap_entry
    - lxc_clear_config_caps
    - lxc_config_value_empty
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_cap_drop(const char *key, const char *value,\n\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2563
    functionDepth: 4
    functionLinenumber: 2563
    functionLinenumberEnd: 2567
    functionName: set_config_console_path
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_path_item
    linkageType: ''
    returnType: int
    signature: "int set_config_console_path(const char *key, const char *value,\n\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2574,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:2579,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2581,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2587
    functionName: set_config_console_rotate
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_console_rotate(const char *key, const char *value,\n\t\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2593
      start: 2589
    functionDepth: 4
    functionLinenumber: 2589
    functionLinenumberEnd: 2593
    functionName: set_config_console_logfile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_path_item
    linkageType: ''
    returnType: int
    signature: "int set_config_console_logfile(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2602,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2608,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/lxc/confile.c:2613,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2618,1
    - Dst: lxc_getpagesize
      Src: /src/lxc/src/lxc/confile.c:2621,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/confile.c:2623,1
    - Dst: lxc_find_next_power2
      Src: /src/lxc/src/lxc/confile.c:2628,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2630,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/confile.c:2633,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2595
    functionDepth: 2
    functionLinenumber: 2595
    functionLinenumberEnd: 2638
    functionName: set_config_console_buffer_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - NOTICE
    - ret_errno
    - strequal
    - lxc_getpagesize
    - lxc_find_next_power2
    - lxc_config_value_empty
    - parse_byte_size_string
    linkageType: ''
    returnType: int
    signature: "int set_config_console_buffer_size(const char *key, const char *value,\n\t\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2647,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2653,1
    - Dst: parse_byte_size_string
      Src: /src/lxc/src/lxc/confile.c:2658,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2660,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2663,1
    - Dst: lxc_getpagesize
      Src: /src/lxc/src/lxc/confile.c:2666,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/confile.c:2668,1
    - Dst: lxc_find_next_power2
      Src: /src/lxc/src/lxc/confile.c:2673,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2675,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/confile.c:2678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2640
    functionDepth: 2
    functionLinenumber: 2640
    functionLinenumberEnd: 2683
    functionName: set_config_console_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - NOTICE
    - ret_errno
    - strequal
    - lxc_getpagesize
    - lxc_find_next_power2
    - lxc_config_value_empty
    - parse_byte_size_string
    linkageType: ''
    returnType: int
    signature: "int set_config_console_size(const char *key, const char *value,\n\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/confile.c:2697,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2697,1
    - Dst: lxc_config_net_is_hwaddr
      Src: /src/lxc/src/lxc/confile.c:2701,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:2705,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/confile.c:2710,1
    - Dst: rand_complete_hwaddr
      Src: /src/lxc/src/lxc/confile.c:2716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2693
    functionDepth: 2
    functionLinenumber: 2693
    functionLinenumberEnd: 2717
    functionName: update_hwaddr
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_config_net_is_hwaddr
    - rand_complete_hwaddr
    - strlen
    - strchr
    - isblank
    - lxc_char_left_gc
    linkageType: ''
    returnType: void
    signature: void update_hwaddr(const char *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: update_hwaddr
      Src: /src/lxc/src/lxc/confile.c:2724,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2726,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/confile.c:2730,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2732,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:2741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - line
    - conf
    argTypes:
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2719
    functionDepth: 3
    functionLinenumber: 2719
    functionLinenumberEnd: 2748
    functionName: append_unexp_config_line
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 3
    functionsReached:
    - memcpy
    - ret_errno
    - strlen
    - update_hwaddr
    - realloc
    linkageType: ''
    returnType: int
    signature: int append_unexp_config_line(const char *line, struct lxc_conf *conf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/confile.c:2756,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/confile.c:2760,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2765,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2768,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2771,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:2772,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:2775,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2777,1
    - Dst: lxc_config_read
      Src: /src/lxc/src/lxc/confile.c:2779,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - dirp
    - lxc_conf
    argTypes:
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2750
    functionDepth: 1
    functionLinenumber: 2750
    functionLinenumberEnd: 2785
    functionName: do_includedir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - strnprintf
    - strequal
    - ret_errno
    - strnequal
    - strlen
    - lxc_config_read
    linkageType: ''
    returnType: int
    signature: int do_includedir(const char *dirp, struct lxc_conf *lxc_conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2790,1
    - Dst: clr_config_includefiles
      Src: /src/lxc/src/lxc/confile.c:2791,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2795,1
    - Dst: lxc_is_dir
      Src: /src/lxc/src/lxc/confile.c:2795,1
    - Dst: do_includedir
      Src: /src/lxc/src/lxc/confile.c:2796,1
    - Dst: lxc_config_read
      Src: /src/lxc/src/lxc/confile.c:2798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2787
    functionDepth: 2
    functionLinenumber: 2787
    functionLinenumberEnd: 2799
    functionName: set_config_includefiles
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - do_includedir
    - strlen
    - clr_config_includefiles
    - lxc_config_read
    - lxc_config_value_empty
    - lxc_is_dir
    linkageType: ''
    returnType: int
    signature: "int set_config_includefiles(const char *key, const char *value,\n\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2809,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:2810,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2815,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2817,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:2823,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2827,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2829,1
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2837,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2838
      start: 2801
    functionDepth: 4
    functionLinenumber: 2801
    functionLinenumberEnd: 2838
    functionName: set_config_rootfs_path
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - free
    - set_config_path_item
    - strchr
    - lxc_config_value_empty
    - strdup
    linkageType: ''
    returnType: int
    signature: "int set_config_rootfs_path(const char *key, const char *value,\n\t\t\t\t
      \ struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_bool_item
      Src: /src/lxc/src/lxc/confile.c:2843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2840
    functionDepth: 2
    functionLinenumber: 2840
    functionLinenumberEnd: 2844
    functionName: set_config_rootfs_managed
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_bool_item
    linkageType: ''
    returnType: int
    signature: "int set_config_rootfs_managed(const char *key, const char *value,\n\t\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_config_path_item
      Src: /src/lxc/src/lxc/confile.c:2849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2846
    functionDepth: 4
    functionLinenumber: 2846
    functionLinenumberEnd: 2850
    functionName: set_config_rootfs_mount
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - set_config_path_item
    linkageType: ''
    returnType: int
    signature: "int set_config_rootfs_mount(const char *key, const char *value,\n\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clr_config_rootfs_options
      Src: /src/lxc/src/lxc/confile.c:2860,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2861,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:2864,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2866,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2868,1
    - Dst: parse_lxc_mount_attrs
      Src: /src/lxc/src/lxc/confile.c:2872,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:2879,1
    - Dst: parse_mount_attrs
      Src: /src/lxc/src/lxc/confile.c:2881,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2883,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2885,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2852
    functionDepth: 3
    functionLinenumber: 2852
    functionLinenumberEnd: 2887
    functionName: set_config_rootfs_options
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - clr_config_rootfs_options
    - ret_errno
    - syserror_set
    - parse_mount_attrs
    - move_ptr
    - lxc_config_value_empty
    - parse_lxc_mount_attrs
    - strdup
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_rootfs_options(const char *key, const char *value,\n\t\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2894,1
    - Dst: clr_config_uts_name
      Src: /src/lxc/src/lxc/confile.c:2895,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/confile.c:2899,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2901,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2903,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2904,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/confile.c:2906,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:2907,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:2908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2889
    functionDepth: 1
    functionLinenumber: 2889
    functionLinenumberEnd: 2911
    functionName: set_config_uts_name
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - free
    - strlcpy
    - move_ptr
    - strlen
    - zalloc
    - lxc_config_value_empty
    - clr_config_uts_name
    linkageType: ''
    returnType: int
    signature: "int set_config_uts_name(const char *key, const char *value,\n\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2920,1
    - Dst: clr_config_namespace_clone
      Src: /src/lxc/src/lxc/confile.c:2921,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2924,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2926,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2928,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/confile.c:2930,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/confile.c:2931,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2931,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/confile.c:2932,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2932,1
    - Dst: lxc_namespace_2_cloneflag
      Src: /src/lxc/src/lxc/confile.c:2933,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2913
    functionDepth: 2
    functionLinenumber: 2913
    functionLinenumberEnd: 2940
    functionName: set_config_namespace_clone
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strlen
    - lxc_namespace_2_cloneflag
    - clr_config_namespace_clone
    - lxc_char_left_gc
    - lxc_config_value_empty
    - lxc_char_right_gc
    - lxc_iterate_parts
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_namespace_clone(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2949,1
    - Dst: clr_config_namespace_keep
      Src: /src/lxc/src/lxc/confile.c:2950,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:2953,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:2955,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2957,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/confile.c:2959,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/confile.c:2960,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2960,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/confile.c:2961,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:2961,1
    - Dst: lxc_namespace_2_cloneflag
      Src: /src/lxc/src/lxc/confile.c:2962,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2969
      start: 2942
    functionDepth: 2
    functionLinenumber: 2942
    functionLinenumberEnd: 2969
    functionName: set_config_namespace_keep
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - clr_config_namespace_keep
    - strlen
    - lxc_namespace_2_cloneflag
    - lxc_char_left_gc
    - lxc_config_value_empty
    - lxc_char_right_gc
    - lxc_iterate_parts
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int set_config_namespace_keep(const char *key, const char *value,\n\t\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:2977,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:2979,1
    - Dst: clr_config_time_offset_boot
      Src: /src/lxc/src/lxc/confile.c:2980,1
    - Dst: lxc_safe_int64_residual
      Src: /src/lxc/src/lxc/confile.c:2982,1
    - Dst: lxc_trim_whitespace_in_place
      Src: /src/lxc/src/lxc/confile.c:2986,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2987,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:2988,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2989,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2990,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:2991,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2992,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2993,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2995,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:2996,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:2997,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:2998,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:2999,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3000,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3001,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3004,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2971
    functionDepth: 2
    functionLinenumber: 2971
    functionLinenumberEnd: 3008
    functionName: set_config_time_offset_boot
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - STRLITERALLEN
    - check_mul_overflow
    - lxc_trim_whitespace_in_place
    - lxc_safe_int64_residual
    - clr_config_time_offset_boot
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_time_offset_boot(const char *key, const char *value,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:3016,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:3018,1
    - Dst: clr_config_time_offset_monotonic
      Src: /src/lxc/src/lxc/confile.c:3019,1
    - Dst: lxc_safe_int64_residual
      Src: /src/lxc/src/lxc/confile.c:3021,1
    - Dst: lxc_trim_whitespace_in_place
      Src: /src/lxc/src/lxc/confile.c:3025,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3026,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:3027,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3028,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3029,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:3030,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3031,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3032,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3034,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:3035,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3036,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3037,1
    - Dst: check_mul_overflow
      Src: /src/lxc/src/lxc/confile.c:3038,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3039,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3040,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3043,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3010
    functionDepth: 2
    functionLinenumber: 3010
    functionLinenumberEnd: 3047
    functionName: set_config_time_offset_monotonic
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - STRLITERALLEN
    - check_mul_overflow
    - lxc_trim_whitespace_in_place
    - lxc_safe_int64_residual
    - lxc_config_value_empty
    - clr_config_time_offset_monotonic
    linkageType: ''
    returnType: int
    signature: "int set_config_time_offset_monotonic(const char *key, const char *value,\n\t\t\t\t\t
      \   struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:3055,1
    - Dst: clr_config_namespace_share
      Src: /src/lxc/src/lxc/confile.c:3056,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:3058,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile.c:3059,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3060,1
    - Dst: lxc_namespace_2_ns_idx
      Src: /src/lxc/src/lxc/confile.c:3062,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:3066,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3049
    functionDepth: 2
    functionLinenumber: 3049
    functionLinenumberEnd: 3067
    functionName: set_config_namespace_share
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - clr_config_namespace_share
    - STRLITERALLEN
    - is_empty_string
    - lxc_namespace_2_ns_idx
    - lxc_config_value_empty
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_namespace_share(const char *key, const char *value,\n\t\t\t\t
      \     struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3085,1
    - Dst: lxc_is_line_empty
      Src: /src/lxc/src/lxc/confile.c:3088,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:3096,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3098,1
    - Dst: append_unexp_config_line
      Src: /src/lxc/src/lxc/confile.c:3101,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/confile.c:3109,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3109,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:3116,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3119,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:3121,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/confile.c:3127,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3127,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/confile.c:3129,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3129,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/confile.c:3130,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3130,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3135,1
    - Dst: lxc_get_config
      Src: /src/lxc/src/lxc/confile.c:3142,1
    - Dst: struct lxc_config_t*::set
      Src: /src/lxc/src/lxc/confile.c:3143,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - buffer
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3074
    functionDepth: 4
    functionLinenumber: 3074
    functionLinenumberEnd: 3144
    functionName: parse_line
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - append_unexp_config_line
    - syserror_set
    - strnequal
    - strlen
    - strchr
    - lxc_is_line_empty
    - struct lxc_config_t*::set
    - lxc_get_config
    - lxc_char_left_gc
    - lxc_char_right_gc
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int parse_line(char *buffer, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile.c:3153,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:3154,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:3156,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/confile.c:3160,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3160,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:3163,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3166,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:3168,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/confile.c:3174,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3174,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/confile.c:3176,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3176,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/confile.c:3177,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3177,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3182,1
    - Dst: zalloc::zalloc
      Src: /src/lxc/src/lxc/confile.c:3189,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:3193,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:3197,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:3201,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:3202,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:3203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3146
    functionDepth: 1
    functionLinenumber: 3146
    functionLinenumberEnd: 3204
    functionName: parse_new_conf_line
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - zalloc::zalloc
    - strnequal
    - move_ptr
    - strlen
    - strchr
    - is_empty_string
    - lxc_char_left_gc
    - lxc_char_right_gc
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: struct new_config_item
    signature: struct new_config_item *parse_new_conf_line(char *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3211,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/confile.c:3218,1
    - Dst: lxc_file_for_each_line_mmap
      Src: /src/lxc/src/lxc/confile.c:3220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - file
    - conf
    - from_include
    argTypes:
    - char*
    - struct lxc_conf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3221
      start: 3206
    functionDepth: 2
    functionLinenumber: 3206
    functionLinenumberEnd: 3221
    functionName: lxc_config_read
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 5
    functionsReached:
    - strdup
    - syserror_set
    - lxc_file_for_each_line_mmap
    linkageType: ''
    returnType: int
    signature: int lxc_config_read(const char *file, struct lxc_conf *conf, bool from_include)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_new
      Src: /src/lxc/src/lxc/confile.c:3227,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3229,1
    - Dst: parse_new_conf_line
      Src: /src/lxc/src/lxc/confile.c:3231,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3233,1
    - Dst: lxc_list_add_tail
      Src: /src/lxc/src/lxc/confile.c:3235,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/confile.c:3235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - defines
    - arg
    argTypes:
    - struct lxc_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3238
      start: 3223
    functionDepth: 2
    functionLinenumber: 3223
    functionLinenumberEnd: 3238
    functionName: lxc_config_define_add
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - lxc_list_new
    - ret_errno
    - move_ptr
    - lxc_list_add_tail
    - parse_new_conf_line
    linkageType: ''
    returnType: int
    signature: int lxc_config_define_add(struct lxc_list *defines, char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/confile.c:3247,1
    - Dst: lxc_config_define_free
      Src: /src/lxc/src/lxc/confile.c:3253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - defines
    - c
    argTypes:
    - struct lxc_list*
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3240
    functionDepth: 1
    functionLinenumber: 3240
    functionLinenumberEnd: 3257
    functionName: lxc_config_define_load
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - struct lxc_container*::set_config_item
    - lxc_config_define_free
    linkageType: ''
    returnType: bool
    signature: bool lxc_config_define_load(struct lxc_list *defines, struct lxc_container
      *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_config_item
      Src: /src/lxc/src/lxc/confile.c:3247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3245
    functionDepth: 0
    functionLinenumber: 3245
    functionLinenumberEnd: 3250
    functionName: lxc_list_for_each
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 3
    functionsReached:
    - set_config_item
    linkageType: ''
    returnType: void
    signature: void lxc_list_for_each(it, defines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3265,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3266,1
    - Dst: lxc_list_del
      Src: /src/lxc/src/lxc/confile.c:3267,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3268,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - defines
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3271
      start: 3259
    functionDepth: 1
    functionLinenumber: 3259
    functionLinenumberEnd: 3271
    functionName: lxc_config_define_free
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 2
    functionsReached:
    - free
    - lxc_list_del
    linkageType: ''
    returnType: void
    signature: void lxc_config_define_free(struct lxc_list *defines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3265,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3266,1
    - Dst: lxc_list_del
      Src: /src/lxc/src/lxc/confile.c:3267,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3268,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:3269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3270
      start: 3263
    functionDepth: 1
    functionLinenumber: 3263
    functionLinenumberEnd: 3270
    functionName: lxc_list_for_each_safe
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 3
    functionsReached:
    - free
    - lxc_list_del
    linkageType: ''
    returnType: void
    signature: void lxc_list_for_each_safe(it, defines, next)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/confile.c:3312,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3313,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - arch
    - persona
    argTypes:
    - char*
    - signed long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3321
      start: 3273
    functionDepth: 1
    functionLinenumber: 3273
    functionLinenumberEnd: 3321
    functionName: lxc_config_parse_arch
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 2
    functionsReached:
    - ret_errno
    - strequal
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int lxc_config_parse_arch(const char *arch, signed long *persona)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/confile.c:3332,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/confile.c:3334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - conf
    argTypes:
    - int
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3324
    functionDepth: 1
    functionLinenumber: 3324
    functionLinenumberEnd: 3337
    functionName: write_config
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 2
    functionsReached:
    - log_error_errno
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int write_config(int fd, const struct lxc_conf *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3346,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3346,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/confile.c:3347,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:3349,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:3350,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:3352,1
    - Dst: append_unexp_config_line
      Src: /src/lxc/src/lxc/confile.c:3357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - conf
    - key
    - v
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3361
      start: 3339
    functionDepth: 4
    functionLinenumber: 3339
    functionLinenumberEnd: 3361
    functionName: do_append_unexp_config_line
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 3
    functionsReached:
    - strnprintf
    - append_unexp_config_line
    - strlen
    - lxc_config_value_empty
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: "bool do_append_unexp_config_line(struct lxc_conf *conf, const char
      *key,\n\t\t\t\t const char *v)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3373,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3377,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:3381,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3381,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3387,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/confile.c:3388,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/confile.c:3401,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - conf
    - key
    - rm_subkeys
    argTypes:
    - struct lxc_conf*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3363
    functionDepth: 1
    functionLinenumber: 3363
    functionLinenumberEnd: 3403
    functionName: clear_unexp_config_line
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 6
    functionsReached:
    - strnequal
    - strlen
    - strchr
    - memmove
    - isspace
    linkageType: ''
    returnType: void
    signature: "void clear_unexp_config_line(struct lxc_conf *conf, const char *key,\n\t\t\t
      \    bool rm_subkeys)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3416,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3416,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3416,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/confile.c:3417,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:3418,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3422,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3422,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3422,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/confile.c:3423,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:3424,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3432,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3434,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:3438,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3438,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3441,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3441,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/confile.c:3446,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/confile.c:3460,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/confile.c:3464,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:3470,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/confile.c:3473,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3474,1
    - Dst: realloc::realloc
      Src: /src/lxc/src/lxc/confile.c:3485,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/confile.c:3496,1
    - Dst: poffset::poffset
      Src: /src/lxc/src/lxc/confile.c:3497,1
    - Dst: memcpy::memcpy
      Src: /src/lxc/src/lxc/confile.c:3499,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 6
    argNames:
    - conf
    - oldpath
    - newpath
    - oldname
    - newname
    - ovldir
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3405
    functionDepth: 1
    functionLinenumber: 3405
    functionLinenumberEnd: 3510
    functionName: clone_update_unexp_ovl_paths
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - memcpy
    - strnequal
    - strlen
    - strstr
    - strchr
    - isblank
    - memmove
    - realloc::realloc
    - memcpy::memcpy
    - poffset::poffset
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: "bool clone_update_unexp_ovl_paths(struct lxc_conf *conf, const char
      *oldpath,\n\t\t\t\t  const char *newpath, const char *oldname,\n\t\t\t\t  const
      char *newname, const char *ovldir)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3523,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3523,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/confile.c:3524,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:3525,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3529,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3529,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/confile.c:3530,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:3531,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3539,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3541,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:3545,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3545,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3548,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3548,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/confile.c:3553,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:3559,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3559,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:3565,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/confile.c:3568,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3569,1
    - Dst: realloc::realloc
      Src: /src/lxc/src/lxc/confile.c:3580,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/confile.c:3591,1
    - Dst: poffset::poffset
      Src: /src/lxc/src/lxc/confile.c:3592,1
    - Dst: memcpy::memcpy
      Src: /src/lxc/src/lxc/confile.c:3594,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 5
    argNames:
    - conf
    - oldpath
    - newpath
    - oldname
    - newname
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3512
    functionDepth: 1
    functionLinenumber: 3512
    functionLinenumberEnd: 3605
    functionName: clone_update_unexp_hooks
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - strnprintf
    - memcpy
    - strnequal
    - strlen
    - strchr
    - isblank
    - memmove
    - realloc::realloc
    - memcpy::memcpy
    - poffset::poffset
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: "bool clone_update_unexp_hooks(struct lxc_conf *conf, const char *oldpath,\n\t\t\t
      \     const char *newpath, const char *oldname,\n\t\t\t      const char *newname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3607
    functionDepth: 0
    functionLinenumber: 3607
    functionLinenumberEnd: 3614
    functionName: DO
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO(cmd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3635,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:3637,1
    - Dst: lxc_config_net_is_hwaddr
      Src: /src/lxc/src/lxc/confile.c:3641,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:3646,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/confile.c:3653,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/confile.c:3659,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/confile.c:3663,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:3668,1
    - Dst: new_hwaddr
      Src: /src/lxc/src/lxc/confile.c:3670,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:3673,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:3674,1
    - Dst: memcmp
      Src: /src/lxc/src/lxc/confile.c:3675,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:3676,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3623
    functionDepth: 2
    functionLinenumber: 3623
    functionLinenumberEnd: 3683
    functionName: network_new_hwaddrs
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - WARN
    - lxc_config_net_is_hwaddr
    - memcpy
    - memcmp
    - strlen
    - strchr
    - isblank
    - list_for_each_entry
    - new_hwaddr
    linkageType: ''
    returnType: bool
    signature: bool network_new_hwaddrs(struct lxc_conf *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:3690,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:3695,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3703
    functionName: set_config_ephemeral
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_ephemeral(const char *key, const char *value,\n\t\t\t\tstruct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:3711,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:3713,1
    - Dst: lxc_syslog_priority_to_int
      Src: /src/lxc/src/lxc/confile.c:3716,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3718,1
    - Dst: lxc_log_syslog
      Src: /src/lxc/src/lxc/confile.c:3720,1
    - Dst: set_config_string_item
      Src: /src/lxc/src/lxc/confile.c:3722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3723
      start: 3705
    functionDepth: 2
    functionLinenumber: 3705
    functionLinenumberEnd: 3723
    functionName: set_config_log_syslog
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - free_disarm
    - lxc_syslog_priority_to_int
    - lxc_config_value_empty
    - lxc_log_syslog
    - set_config_string_item
    linkageType: ''
    returnType: int
    signature: "int set_config_log_syslog(const char *key, const char *value,\n\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:3731,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:3736,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3746
      start: 3725
    functionDepth: 1
    functionLinenumber: 3725
    functionLinenumberEnd: 3746
    functionName: set_config_no_new_privs
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_safe_uint
    - ret_errno
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_no_new_privs(const char *key, const char *value,\n\t\t\t\t
      \  struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:3757,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3763,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3766,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3773
      start: 3749
    functionDepth: 1
    functionLinenumber: 3749
    functionLinenumberEnd: 3773
    functionName: get_config_personality
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_personality(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_size_t
      Src: /src/lxc/src/lxc/confile.c:3778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3779
      start: 3775
    functionDepth: 2
    functionLinenumber: 3775
    functionLinenumberEnd: 3779
    functionName: get_config_pty_max
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_size_t
    linkageType: ''
    returnType: int
    signature: "int get_config_pty_max(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_size_t
      Src: /src/lxc/src/lxc/confile.c:3784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3785
      start: 3781
    functionDepth: 2
    functionLinenumber: 3781
    functionLinenumberEnd: 3785
    functionName: get_config_tty_max
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_size_t
    linkageType: ''
    returnType: int
    signature: "int get_config_tty_max(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:3790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3787
    functionDepth: 1
    functionLinenumber: 3787
    functionLinenumberEnd: 3791
    functionName: get_config_tty_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_tty_dir(const char *key, char *retv, int inlen,\n\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:3797,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3801
      start: 3793
    functionDepth: 1
    functionLinenumber: 3793
    functionLinenumberEnd: 3801
    functionName: get_config_apparmor_profile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int get_config_apparmor_profile(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:3808,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3812
      start: 3803
    functionDepth: 2
    functionLinenumber: 3803
    functionLinenumberEnd: 3812
    functionName: get_config_apparmor_allow_incomplete
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int get_config_apparmor_allow_incomplete(const char *key, char *retv,\n\t\t\t\t\t\tint
      inlen, struct lxc_conf *c,\n\t\t\t\t\t\tvoid *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:3819,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3823
      start: 3814
    functionDepth: 2
    functionLinenumber: 3814
    functionLinenumberEnd: 3823
    functionName: get_config_apparmor_allow_nesting
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int get_config_apparmor_allow_nesting(const char *key, char *retv,\n\t\t\t\t\t
      \    int inlen, struct lxc_conf *c,\n\t\t\t\t\t     void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:3837,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:3839,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3840,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3825
    functionDepth: 1
    functionLinenumber: 3825
    functionLinenumberEnd: 3847
    functionName: get_config_apparmor_raw
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - syserror_set
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_apparmor_raw(const char *key, char *retv,\n\t\t\t\t
      \  int inlen, struct lxc_conf *c,\n\t\t\t\t   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:3853,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3849
    functionDepth: 1
    functionLinenumber: 3849
    functionLinenumberEnd: 3857
    functionName: get_config_selinux_context
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int get_config_selinux_context(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:3863,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:3865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3859
    functionDepth: 1
    functionLinenumber: 3859
    functionLinenumberEnd: 3867
    functionName: get_config_selinux_context_keyring
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int get_config_selinux_context_keyring(const char *key, char *retv,
      int inlen,\n\t\t\t\t\t      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_bool
      Src: /src/lxc/src/lxc/confile.c:3872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3869
    functionDepth: 2
    functionLinenumber: 3869
    functionLinenumberEnd: 3873
    functionName: get_config_keyring_session
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_bool
    linkageType: ''
    returnType: int
    signature: "int get_config_keyring_session(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:3899,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:3904,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:3909,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3912,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3915,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:3917,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3920,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3927,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3929,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3930,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - version
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3935
      start: 3884
    functionDepth: 1
    functionLinenumber: 3884
    functionLinenumberEnd: 3935
    functionName: __get_config_cgroup_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - strequal
    - ret_errno
    - STRLITERALLEN
    - strnequal
    linkageType: ''
    returnType: int
    signature: "int __get_config_cgroup_controller(const char *key, char *retv,\n\t\t\t\t\t
      \ int inlen, struct lxc_conf *c,\n\t\t\t\t\t  int version)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3927,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3929,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3922
    functionDepth: 1
    functionLinenumber: 3922
    functionLinenumberEnd: 3932
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 45
    functionsReached:
    - strprint
    - strequal
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(cgroup, list, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __get_config_cgroup_controller
      Src: /src/lxc/src/lxc/confile.c:3940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3937
    functionDepth: 2
    functionLinenumber: 3937
    functionLinenumberEnd: 3942
    functionName: get_config_cgroup_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - __get_config_cgroup_controller
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup_controller(const char *key, char *retv, int
      inlen,\n\t\t\t\t\tstruct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __get_config_cgroup_controller
      Src: /src/lxc/src/lxc/confile.c:3947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3944
    functionDepth: 2
    functionLinenumber: 3944
    functionLinenumberEnd: 3949
    functionName: get_config_cgroup2_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - __get_config_cgroup_controller
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup2_controller(const char *key, char *retv, int
      inlen,\n\t\t\t\t\t struct lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:3957,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:3958,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:3963,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3951
    functionDepth: 1
    functionLinenumber: 3951
    functionLinenumberEnd: 3968
    functionName: get_config_cgroup_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - ret_errno
    - strprint
    - strequal
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup_dir(const char *key, char *retv, int inlen,\n\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:3979,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3970
    functionDepth: 1
    functionLinenumber: 3970
    functionLinenumberEnd: 3984
    functionName: get_config_cgroup_monitor_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup_monitor_dir(const char *key, char *retv, int
      inlen,\n\t\t\t\t\t struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:3995,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:3997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4000
      start: 3986
    functionDepth: 1
    functionLinenumber: 3986
    functionLinenumberEnd: 4000
    functionName: get_config_cgroup_monitor_pivot_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup_monitor_pivot_dir(const char *key, char *retv,
      int inlen,\n\t\t\t\t\t struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4013,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 4002
    functionDepth: 1
    functionLinenumber: 4002
    functionLinenumberEnd: 4018
    functionName: get_config_cgroup_container_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup_container_dir(const char *key, char *retv,\n\t\t\t\t\t
      \  int inlen,\n\t\t\t\t\t   struct lxc_conf *lxc_conf,\n\t\t\t\t\t   void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4031,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 4020
    functionDepth: 1
    functionLinenumber: 4020
    functionLinenumberEnd: 4036
    functionName: get_config_cgroup_container_inner_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup_container_inner_dir(const char *key, char *retv,\n\t\t\t\t\t\t
      int inlen,\n\t\t\t\t\t\t struct lxc_conf *lxc_conf,\n\t\t\t\t\t\t void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4044
      start: 4038
    functionDepth: 2
    functionLinenumber: 4038
    functionLinenumberEnd: 4044
    functionName: get_config_cgroup_relative
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_cgroup_relative(const char *key, char *retv,\n\t\t\t\t\t
      \    int inlen, struct lxc_conf *lxc_conf,\n\t\t\t\t\t     void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4078,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/confile.c:4080,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4081,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/confile.c:4082,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4086,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4092
      start: 4046
    functionDepth: 1
    functionLinenumber: 4046
    functionLinenumberEnd: 4092
    functionName: get_config_idmaps
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - strnprintf
    - ret_errno
    - list_len
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_idmaps(const char *key, char *retv, int inlen,\n\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_priority_to_string
      Src: /src/lxc/src/lxc/confile.c:4098,1
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4100
      start: 4094
    functionDepth: 1
    functionLinenumber: 4094
    functionLinenumberEnd: 4100
    functionName: get_config_log_level
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    - lxc_log_priority_to_string
    linkageType: ''
    returnType: int
    signature: "int get_config_log_level(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4106
      start: 4102
    functionDepth: 1
    functionLinenumber: 4102
    functionLinenumberEnd: 4106
    functionName: get_config_log_file
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_log_file(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4112
      start: 4108
    functionDepth: 1
    functionLinenumber: 4108
    functionLinenumberEnd: 4112
    functionName: get_config_mount_fstab
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_mount_fstab(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4123,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4130,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4134,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4143,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4147,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4151,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4160,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4163,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4166,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4169,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4172,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4175,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4178,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4181,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4114
    functionDepth: 1
    functionLinenumber: 4114
    functionLinenumberEnd: 4188
    functionName: get_config_mount_auto
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_mount_auto(const char *key, char *retv, int inlen,\n\t\t\t\t
      struct lxc_conf *c, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4199,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4201,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4206
      start: 4190
    functionDepth: 1
    functionLinenumber: 4190
    functionLinenumberEnd: 4206
    functionName: get_config_mount
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_mount(const char *key, char *retv, int inlen,\n\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4212
      start: 4208
    functionDepth: 1
    functionLinenumber: 4208
    functionLinenumberEnd: 4212
    functionName: get_config_rootfs_path
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_rootfs_path(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_bool
      Src: /src/lxc/src/lxc/confile.c:4217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4218
      start: 4214
    functionDepth: 2
    functionLinenumber: 4214
    functionLinenumberEnd: 4218
    functionName: get_config_rootfs_managed
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_bool
    linkageType: ''
    returnType: int
    signature: "int get_config_rootfs_managed(const char *key, char *retv, int inlen,\n\t\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4224
      start: 4220
    functionDepth: 1
    functionLinenumber: 4220
    functionLinenumberEnd: 4224
    functionName: get_config_rootfs_mount
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_rootfs_mount(const char *key, char *retv, int inlen,\n\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4230
      start: 4226
    functionDepth: 1
    functionLinenumber: 4226
    functionLinenumberEnd: 4230
    functionName: get_config_rootfs_options
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_rootfs_options(const char *key, char *retv, int inlen,\n\t\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4238
      start: 4232
    functionDepth: 1
    functionLinenumber: 4232
    functionLinenumberEnd: 4238
    functionName: get_config_uts_name
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_uts_name(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:4248,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4250,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/confile.c:4252,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4254,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4257,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4260,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4267,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4272,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4274,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4279
      start: 4240
    functionDepth: 1
    functionLinenumber: 4240
    functionLinenumberEnd: 4279
    functionName: get_config_hooks
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - strequal
    - ret_errno
    - strchr
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_hooks(const char *key, char *retv, int inlen,\n\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4285
      start: 4281
    functionDepth: 2
    functionLinenumber: 4281
    functionLinenumberEnd: 4285
    functionName: get_config_hooks_version
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_hooks_version(const char *key, char *retv, int inlen,\n\t\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4296,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4298,1
    - Dst: lxc_net_type_to_str
      Src: /src/lxc/src/lxc/confile.c:4299,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4304
      start: 4287
    functionDepth: 1
    functionLinenumber: 4287
    functionLinenumberEnd: 4304
    functionName: get_config_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - lxc_net_type_to_str
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_net(const char *key, char *retv, int inlen,\n\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4315,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4317,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4322
      start: 4306
    functionDepth: 1
    functionLinenumber: 4306
    functionLinenumberEnd: 4322
    functionName: get_config_cap_drop
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_cap_drop(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4333,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4335,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4340
      start: 4324
    functionDepth: 1
    functionLinenumber: 4324
    functionLinenumberEnd: 4340
    functionName: get_config_cap_keep
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_cap_keep(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4342
    functionDepth: 1
    functionLinenumber: 4342
    functionLinenumberEnd: 4346
    functionName: get_config_console_path
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_console_path(const char *key, char *retv, int inlen,\n\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4348
    functionDepth: 1
    functionLinenumber: 4348
    functionLinenumberEnd: 4352
    functionName: get_config_console_logfile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_console_logfile(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4358
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4358
    functionName: get_config_console_rotate
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_console_rotate(const char *key, char *retv, int inlen,\n\t\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_uint64
      Src: /src/lxc/src/lxc/confile.c:4365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4366
      start: 4361
    functionDepth: 2
    functionLinenumber: 4361
    functionLinenumberEnd: 4366
    functionName: get_config_console_buffer_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_uint64
    linkageType: ''
    returnType: int
    signature: "int get_config_console_buffer_size(const char *key, char *retv,\n\t\t\t\t\t
      \ int inlen, struct lxc_conf *c,\n\t\t\t\t\t  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_uint64
      Src: /src/lxc/src/lxc/confile.c:4371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4372
      start: 4368
    functionDepth: 2
    functionLinenumber: 4368
    functionLinenumberEnd: 4372
    functionName: get_config_console_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_uint64
    linkageType: ''
    returnType: int
    signature: "int get_config_console_size(const char *key, char *retv, int inlen,\n\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4379,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4383
      start: 4374
    functionDepth: 2
    functionLinenumber: 4374
    functionLinenumberEnd: 4383
    functionName: get_config_seccomp_allow_nesting
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_seccomp_allow_nesting(const char *key, char *retv,\n\t\t\t\t\t
      \   int inlen, struct lxc_conf *c,\n\t\t\t\t\t    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4389,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4393
      start: 4385
    functionDepth: 1
    functionLinenumber: 4385
    functionLinenumberEnd: 4393
    functionName: get_config_seccomp_notify_cookie
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_seccomp_notify_cookie(const char *key, char *retv,
      int inlen,\n\t\t\t\t\t    struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4399,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4406
      start: 4395
    functionDepth: 1
    functionLinenumber: 4395
    functionLinenumberEnd: 4406
    functionName: get_config_seccomp_notify_proxy
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_seccomp_notify_proxy(const char *key, char *retv, int
      inlen,\n\t\t\t\t\t   struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4412,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4416
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4416
    functionName: get_config_seccomp_profile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_seccomp_profile(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4422
      start: 4418
    functionDepth: 2
    functionLinenumber: 4418
    functionLinenumberEnd: 4422
    functionName: get_config_autodev
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_autodev(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4424
    functionDepth: 2
    functionLinenumber: 4424
    functionLinenumberEnd: 4428
    functionName: get_config_autodev_tmpfs_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_autodev_tmpfs_size(const char *key, char *retv, int
      inlen,\n\t\t\t      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4430
    functionDepth: 2
    functionLinenumber: 4430
    functionLinenumberEnd: 4434
    functionName: get_config_signal_halt
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_signal_halt(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4440
      start: 4436
    functionDepth: 2
    functionLinenumber: 4436
    functionLinenumberEnd: 4440
    functionName: get_config_signal_reboot
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_signal_reboot(const char *key, char *retv, int inlen,\n\t\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4446
      start: 4442
    functionDepth: 2
    functionLinenumber: 4442
    functionLinenumberEnd: 4446
    functionName: get_config_signal_stop
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_signal_stop(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4451,1
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4452,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4453,1
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4454,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4455,1
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4456,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4459
      start: 4448
    functionDepth: 2
    functionLinenumber: 4448
    functionLinenumberEnd: 4459
    functionName: get_config_start
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_get_conf_int
    - strequal
    linkageType: ''
    returnType: int
    signature: "int get_config_start(const char *key, char *retv, int inlen,\n\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4465
      start: 4461
    functionDepth: 1
    functionLinenumber: 4461
    functionLinenumberEnd: 4465
    functionName: get_config_log_syslog
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_log_syslog(const char *key, char *retv, int inlen,\n\t\t\t\t
      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4467
    functionDepth: 2
    functionLinenumber: 4467
    functionLinenumberEnd: 4471
    functionName: get_config_monitor
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_monitor(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4478
    functionName: get_config_monitor_signal_pdeath
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_monitor_signal_pdeath(const char *key, char *retv,\n\t\t\t\t\t
      \   int inlen, struct lxc_conf *c,\n\t\t\t\t\t    void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4489,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4491,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4496
      start: 4480
    functionDepth: 1
    functionLinenumber: 4480
    functionLinenumberEnd: 4496
    functionName: get_config_group
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_group(const char *key, char *retv, int inlen,\n\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4507,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - retv
    - inlen
    - environment
    argTypes:
    - char*
    - int
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4514
      start: 4498
    functionDepth: 1
    functionLinenumber: 4498
    functionLinenumberEnd: 4514
    functionName: get_config_environment_impl
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_environment_impl(char *retv, int inlen,\n\t\t\t\t       struct
      list_head *environment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4511
      start: 4509
    functionDepth: 1
    functionLinenumber: 4509
    functionLinenumberEnd: 4511
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 52
    functionsReached:
    - strprint
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(env, environment, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_config_environment_impl
      Src: /src/lxc/src/lxc/confile.c:4519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4516
    functionDepth: 2
    functionLinenumber: 4516
    functionLinenumberEnd: 4520
    functionName: get_config_environment
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - get_config_environment_impl
    linkageType: ''
    returnType: int
    signature: "int get_config_environment(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_config_environment_impl
      Src: /src/lxc/src/lxc/confile.c:4526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4527
      start: 4522
    functionDepth: 2
    functionLinenumber: 4522
    functionLinenumberEnd: 4527
    functionName: get_config_environment_runtime
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - get_config_environment_impl
    linkageType: ''
    returnType: int
    signature: "int get_config_environment_runtime(const char *key, char *retv,\n\t\t\t\t\t
      \ int inlen, struct lxc_conf *c,\n\t\t\t\t\t  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_config_environment_impl
      Src: /src/lxc/src/lxc/confile.c:4532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4533
      start: 4529
    functionDepth: 2
    functionLinenumber: 4529
    functionLinenumberEnd: 4533
    functionName: get_config_environment_hooks
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - get_config_environment_impl
    linkageType: ''
    returnType: int
    signature: "int get_config_environment_hooks(const char *key, char *retv, int
      inlen,\n\t\t\t\t\tstruct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4539
      start: 4535
    functionDepth: 1
    functionLinenumber: 4535
    functionLinenumberEnd: 4539
    functionName: get_config_execute_cmd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_execute_cmd(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4545
      start: 4541
    functionDepth: 1
    functionLinenumber: 4541
    functionLinenumberEnd: 4545
    functionName: get_config_init_cmd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_init_cmd(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_str
      Src: /src/lxc/src/lxc/confile.c:4550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4551
      start: 4547
    functionDepth: 1
    functionLinenumber: 4547
    functionLinenumberEnd: 4551
    functionName: get_config_init_cwd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_str
    linkageType: ''
    returnType: int
    signature: "int get_config_init_cwd(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4553
    functionDepth: 2
    functionLinenumber: 4553
    functionLinenumberEnd: 4557
    functionName: get_config_init_uid
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_init_uid(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4563
      start: 4559
    functionDepth: 2
    functionLinenumber: 4559
    functionLinenumberEnd: 4563
    functionName: get_config_init_gid
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_init_gid(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4573,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4583
      start: 4565
    functionDepth: 1
    functionLinenumber: 4565
    functionLinenumberEnd: 4583
    functionName: get_config_init_groups
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_init_groups(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4589
      start: 4585
    functionDepth: 2
    functionLinenumber: 4585
    functionLinenumberEnd: 4589
    functionName: get_config_ephemeral
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_ephemeral(const char *key, char *retv, int inlen,\n\t\t\t\tstruct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_int
      Src: /src/lxc/src/lxc/confile.c:4594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4591
    functionDepth: 2
    functionLinenumber: 4591
    functionLinenumberEnd: 4595
    functionName: get_config_no_new_privs
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_int
    linkageType: ''
    returnType: int
    signature: "int get_config_no_new_privs(const char *key, char *retv, int inlen,\n\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4611,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4613,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:4615,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4618,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4620,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/confile.c:4622,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:4626,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4626,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4627,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/confile.c:4629,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/confile.c:4635,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4636,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/confile.c:4638,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4643,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4645,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4646,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4651
      start: 4601
    functionDepth: 1
    functionLinenumber: 4601
    functionLinenumberEnd: 4651
    functionName: get_config_prlimit
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - memcpy
    - ret_errno
    - strequal
    - INTTYPE_TO_STRLEN
    - STRLITERALLEN
    - strnequal
    - sprintf
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_prlimit(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4668,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4670,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:4672,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4672,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4673,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4675,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4677,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4679,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4681,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4687
      start: 4657
    functionDepth: 1
    functionLinenumber: 4657
    functionLinenumberEnd: 4687
    functionName: get_config_sysctl
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - strequal
    - STRLITERALLEN
    - strnequal
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_sysctl(const char *key, char *retv, int inlen,\n\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4700,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4702,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:4704,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4704,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4705,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4707,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:4709,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4711,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4713,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4719
      start: 4689
    functionDepth: 1
    functionLinenumber: 4689
    functionLinenumberEnd: 4719
    functionName: get_config_proc
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - strequal
    - STRLITERALLEN
    - strnequal
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_proc(const char *key, char *retv, int inlen,\n\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4730,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4738
      start: 4721
    functionDepth: 1
    functionLinenumber: 4721
    functionLinenumberEnd: 4738
    functionName: get_config_namespace_clone
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_namespace_clone(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4749,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4757
      start: 4740
    functionDepth: 1
    functionLinenumber: 4740
    functionLinenumberEnd: 4757
    functionName: get_config_namespace_keep
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_namespace_keep(const char *key, char *retv, int inlen,\n\t\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4768,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4771,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4759
    functionDepth: 1
    functionLinenumber: 4759
    functionLinenumberEnd: 4777
    functionName: get_config_time_offset_boot
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_time_offset_boot(const char *key, char *retv, int inlen,
      struct lxc_conf *c,\n\t\t\t\t       void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4788,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4791,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4797
      start: 4779
    functionDepth: 1
    functionLinenumber: 4779
    functionLinenumberEnd: 4797
    functionName: get_config_time_offset_monotonic
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    linkageType: ''
    returnType: int
    signature: "int get_config_time_offset_monotonic(const char *key, char *retv,
      int inlen,\n\t\t\t\t\t    struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:4809,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:4811,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile.c:4812,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4813,1
    - Dst: lxc_namespace_2_ns_idx
      Src: /src/lxc/src/lxc/confile.c:4815,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:4819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4822
      start: 4799
    functionDepth: 2
    functionLinenumber: 4799
    functionLinenumberEnd: 4822
    functionName: get_config_namespace_share
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - STRLITERALLEN
    - is_empty_string
    - lxc_namespace_2_ns_idx
    linkageType: ''
    returnType: int
    signature: "int get_config_namespace_share(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4830
      start: 4825
    functionDepth: 0
    functionLinenumber: 4825
    functionLinenumberEnd: 4830
    functionName: clr_config_personality
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_personality(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4837
      start: 4832
    functionDepth: 0
    functionLinenumber: 4832
    functionLinenumberEnd: 4837
    functionName: clr_config_pty_max
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_pty_max(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4844
      start: 4839
    functionDepth: 0
    functionLinenumber: 4839
    functionLinenumberEnd: 4844
    functionName: clr_config_tty_max
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_tty_max(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4846
    functionDepth: 1
    functionLinenumber: 4846
    functionLinenumberEnd: 4851
    functionName: clr_config_tty_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_tty_dir(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4857,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:4860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4862
      start: 4853
    functionDepth: 1
    functionLinenumber: 4853
    functionLinenumberEnd: 4862
    functionName: clr_config_apparmor_profile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int clr_config_apparmor_profile(const char *key,\n\t\t\t\t\t      struct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:4872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4874
      start: 4864
    functionDepth: 1
    functionLinenumber: 4864
    functionLinenumberEnd: 4874
    functionName: clr_config_apparmor_allow_incomplete
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int clr_config_apparmor_allow_incomplete(const char *key,\n\t\t\t\t\t\t
      \      struct lxc_conf *c,\n\t\t\t\t\t\t       void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:4884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4886
      start: 4876
    functionDepth: 1
    functionLinenumber: 4876
    functionLinenumberEnd: 4886
    functionName: clr_config_apparmor_allow_nesting
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int clr_config_apparmor_allow_nesting(const char *key,\n\t\t\t\t\t\t
      \   struct lxc_conf *c,\n\t\t\t\t\t\t    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_apparmor_raw
      Src: /src/lxc/src/lxc/confile.c:4893,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:4895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4897
      start: 4888
    functionDepth: 2
    functionLinenumber: 4888
    functionLinenumberEnd: 4897
    functionName: clr_config_apparmor_raw
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_apparmor_raw
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int clr_config_apparmor_raw(const char *key,\n\t\t\t\t\t  struct lxc_conf
      *c,\n\t\t\t\t\t  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4903,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:4906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4899
    functionDepth: 1
    functionLinenumber: 4899
    functionLinenumberEnd: 4908
    functionName: clr_config_selinux_context
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int clr_config_selinux_context(const char *key,\n\t\t\t\t\t     struct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4914,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:4917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4919
      start: 4910
    functionDepth: 1
    functionLinenumber: 4910
    functionLinenumberEnd: 4919
    functionName: clr_config_selinux_context_keyring
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int clr_config_selinux_context_keyring(const char *key,\n\t\t\t\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4926
      start: 4921
    functionDepth: 0
    functionLinenumber: 4921
    functionLinenumberEnd: 4926
    functionName: clr_config_keyring_session
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_keyring_session(const char *key,\n\t\t\t\t\t     struct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_cgroups
      Src: /src/lxc/src/lxc/confile.c:4931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4932
      start: 4928
    functionDepth: 2
    functionLinenumber: 4928
    functionLinenumberEnd: 4932
    functionName: clr_config_cgroup_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_cgroups
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup_controller(const char *key,\n\t\t\t\t\t       struct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_cgroups
      Src: /src/lxc/src/lxc/confile.c:4937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4938
      start: 4934
    functionDepth: 2
    functionLinenumber: 4934
    functionLinenumberEnd: 4938
    functionName: clr_config_cgroup2_controller
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_cgroups
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup2_controller(const char *key,\n\t\t\t\t\t\tstruct
      lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:4943,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:4944,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4950
      start: 4940
    functionDepth: 1
    functionLinenumber: 4940
    functionLinenumberEnd: 4950
    functionName: clr_config_cgroup_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    - free_disarm
    - strequal
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup_dir(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4958
      start: 4952
    functionDepth: 1
    functionLinenumber: 4952
    functionLinenumberEnd: 4958
    functionName: clr_config_cgroup_monitor_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup_monitor_dir(const char *key,\n\t\t\t\t\t struct
      lxc_conf *lxc_conf,\n\t\t\t\t\t void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4966
      start: 4960
    functionDepth: 1
    functionLinenumber: 4960
    functionLinenumberEnd: 4966
    functionName: clr_config_cgroup_monitor_pivot_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup_monitor_pivot_dir(const char *key,\n\t\t\t\t\t
      struct lxc_conf *lxc_conf,\n\t\t\t\t\t void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4974
      start: 4968
    functionDepth: 1
    functionLinenumber: 4968
    functionLinenumberEnd: 4974
    functionName: clr_config_cgroup_container_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup_container_dir(const char *key,\n\t\t\t\t\t   struct
      lxc_conf *lxc_conf,\n\t\t\t\t\t   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:4980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4982
      start: 4976
    functionDepth: 1
    functionLinenumber: 4976
    functionLinenumberEnd: 4982
    functionName: clr_config_cgroup_container_inner_dir
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup_container_inner_dir(const char *key,\n\t\t\t\t\t\t
      struct lxc_conf *lxc_conf,\n\t\t\t\t\t\t void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4990
      start: 4984
    functionDepth: 0
    functionLinenumber: 4984
    functionLinenumberEnd: 4990
    functionName: clr_config_cgroup_relative
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_cgroup_relative(const char *key,\n\t\t\t\t\t     struct
      lxc_conf *lxc_conf,\n\t\t\t\t\t     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_idmaps
      Src: /src/lxc/src/lxc/confile.c:4995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4996
      start: 4992
    functionDepth: 3
    functionLinenumber: 4992
    functionLinenumberEnd: 4996
    functionName: clr_config_idmaps
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_idmaps
    linkageType: ''
    returnType: int
    signature: "int clr_config_idmaps(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5003
      start: 4998
    functionDepth: 0
    functionLinenumber: 4998
    functionLinenumberEnd: 5003
    functionName: clr_config_log_level
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_log_level(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5010
      start: 5005
    functionDepth: 1
    functionLinenumber: 5005
    functionLinenumberEnd: 5010
    functionName: clr_config_log_file
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_log_file(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_mount_entries
      Src: /src/lxc/src/lxc/confile.c:5015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5016
      start: 5012
    functionDepth: 2
    functionLinenumber: 5012
    functionLinenumberEnd: 5016
    functionName: clr_config_mount
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_mount_entries
    linkageType: ''
    returnType: int
    signature: "int clr_config_mount(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_automounts
      Src: /src/lxc/src/lxc/confile.c:5021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5022
      start: 5018
    functionDepth: 1
    functionLinenumber: 5018
    functionLinenumberEnd: 5022
    functionName: clr_config_mount_auto
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_automounts
    linkageType: ''
    returnType: int
    signature: "int clr_config_mount_auto(const char *key, struct lxc_conf *c,\n\t\t\t\t\tvoid
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5029
      start: 5024
    functionDepth: 1
    functionLinenumber: 5024
    functionLinenumberEnd: 5029
    functionName: clr_config_mount_fstab
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_mount_fstab(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5036
      start: 5031
    functionDepth: 1
    functionLinenumber: 5031
    functionLinenumberEnd: 5036
    functionName: clr_config_rootfs_path
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_rootfs_path(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5043
      start: 5038
    functionDepth: 0
    functionLinenumber: 5038
    functionLinenumberEnd: 5043
    functionName: clr_config_rootfs_managed
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_rootfs_managed(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5050
      start: 5045
    functionDepth: 1
    functionLinenumber: 5045
    functionLinenumberEnd: 5050
    functionName: clr_config_rootfs_mount
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_rootfs_mount(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \ void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_lxc_mount_options
      Src: /src/lxc/src/lxc/confile.c:5055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5058
      start: 5052
    functionDepth: 2
    functionLinenumber: 5052
    functionLinenumberEnd: 5058
    functionName: clr_config_rootfs_options
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - put_lxc_mount_options
    linkageType: ''
    returnType: int
    signature: "int clr_config_rootfs_options(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5065
      start: 5060
    functionDepth: 1
    functionLinenumber: 5060
    functionLinenumberEnd: 5065
    functionName: clr_config_uts_name
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_uts_name(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_hooks
      Src: /src/lxc/src/lxc/confile.c:5070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5071
      start: 5067
    functionDepth: 2
    functionLinenumber: 5067
    functionLinenumberEnd: 5071
    functionName: clr_config_hooks
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_hooks
    linkageType: ''
    returnType: int
    signature: "int clr_config_hooks(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5079
      start: 5073
    functionDepth: 0
    functionLinenumber: 5073
    functionLinenumberEnd: 5079
    functionName: clr_config_hooks_version
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_hooks_version(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_free_networks
      Src: /src/lxc/src/lxc/confile.c:5084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5081
    functionDepth: 4
    functionLinenumber: 5081
    functionLinenumberEnd: 5087
    functionName: clr_config_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - lxc_free_networks
    linkageType: ''
    returnType: int
    signature: "int clr_config_net(const char *key, struct lxc_conf *c,\n\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_config_caps
      Src: /src/lxc/src/lxc/confile.c:5092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5093
      start: 5089
    functionDepth: 2
    functionLinenumber: 5089
    functionLinenumberEnd: 5093
    functionName: clr_config_cap_drop
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_config_caps
    linkageType: ''
    returnType: int
    signature: "int clr_config_cap_drop(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_config_caps
      Src: /src/lxc/src/lxc/confile.c:5098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5099
      start: 5095
    functionDepth: 2
    functionLinenumber: 5095
    functionLinenumberEnd: 5099
    functionName: clr_config_cap_keep
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_config_caps
    linkageType: ''
    returnType: int
    signature: "int clr_config_cap_keep(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5106
      start: 5101
    functionDepth: 1
    functionLinenumber: 5101
    functionLinenumberEnd: 5106
    functionName: clr_config_console_path
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_console_path(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \ void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5113
      start: 5108
    functionDepth: 1
    functionLinenumber: 5108
    functionLinenumberEnd: 5113
    functionName: clr_config_console_logfile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_console_logfile(const char *key,\n\t\t\t\t\t     struct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5120
      start: 5115
    functionDepth: 0
    functionLinenumber: 5115
    functionLinenumberEnd: 5120
    functionName: clr_config_console_rotate
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_console_rotate(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5127
      start: 5122
    functionDepth: 0
    functionLinenumber: 5122
    functionLinenumberEnd: 5127
    functionName: clr_config_console_buffer_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_console_buffer_size(const char *key,\n\t\t\t\t\t\t
      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5134
      start: 5129
    functionDepth: 0
    functionLinenumber: 5129
    functionLinenumberEnd: 5134
    functionName: clr_config_console_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_console_size(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \ void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5145
      start: 5136
    functionDepth: 1
    functionLinenumber: 5136
    functionLinenumberEnd: 5145
    functionName: clr_config_seccomp_allow_nesting
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_seccomp_allow_nesting(const char *key,\n\t\t\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5151,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 5147
    functionDepth: 1
    functionLinenumber: 5147
    functionLinenumberEnd: 5156
    functionName: clr_config_seccomp_notify_cookie
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_seccomp_notify_cookie(const char *key,\n\t\t\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:5162,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5168
      start: 5158
    functionDepth: 1
    functionLinenumber: 5158
    functionLinenumberEnd: 5168
    functionName: clr_config_seccomp_notify_proxy
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - memset
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_seccomp_notify_proxy(const char *key,\n\t\t\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5175
      start: 5170
    functionDepth: 1
    functionLinenumber: 5170
    functionLinenumberEnd: 5175
    functionName: clr_config_seccomp_profile
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_seccomp_profile(const char *key,\n\t\t\t\t\t     struct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5182
      start: 5177
    functionDepth: 0
    functionLinenumber: 5177
    functionLinenumberEnd: 5182
    functionName: clr_config_autodev
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_autodev(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5189
      start: 5184
    functionDepth: 0
    functionLinenumber: 5184
    functionLinenumberEnd: 5189
    functionName: clr_config_autodev_tmpfs_size
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_autodev_tmpfs_size(const char *key, struct lxc_conf
      *c,\n\t\t\t\t     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5196
      start: 5191
    functionDepth: 0
    functionLinenumber: 5191
    functionLinenumberEnd: 5196
    functionName: clr_config_signal_halt
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_signal_halt(const char *key, struct lxc_conf *c,\n\t\t\t\t\tvoid
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5203
      start: 5198
    functionDepth: 0
    functionLinenumber: 5198
    functionLinenumberEnd: 5203
    functionName: clr_config_signal_reboot
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_signal_reboot(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \ void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5210
      start: 5205
    functionDepth: 0
    functionLinenumber: 5205
    functionLinenumberEnd: 5210
    functionName: clr_config_signal_stop
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_signal_stop(const char *key, struct lxc_conf *c,\n\t\t\t\t\tvoid
      *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:5215,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:5217,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:5219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5223
      start: 5212
    functionDepth: 1
    functionLinenumber: 5212
    functionLinenumberEnd: 5223
    functionName: clr_config_start
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - strequal
    linkageType: ''
    returnType: int
    signature: "int clr_config_start(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5230
      start: 5225
    functionDepth: 1
    functionLinenumber: 5225
    functionLinenumberEnd: 5230
    functionName: clr_config_log_syslog
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_log_syslog(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5237
      start: 5232
    functionDepth: 0
    functionLinenumber: 5232
    functionLinenumberEnd: 5237
    functionName: clr_config_monitor
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_monitor(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5244
      start: 5239
    functionDepth: 0
    functionLinenumber: 5239
    functionLinenumberEnd: 5244
    functionName: clr_config_monitor_signal_pdeath
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_monitor_signal_pdeath(const char *key,\n\t\t\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_groups
      Src: /src/lxc/src/lxc/confile.c:5249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5250
      start: 5246
    functionDepth: 2
    functionLinenumber: 5246
    functionLinenumberEnd: 5250
    functionName: clr_config_group
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_groups
    linkageType: ''
    returnType: int
    signature: "int clr_config_group(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_environment
      Src: /src/lxc/src/lxc/confile.c:5255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5256
      start: 5252
    functionDepth: 2
    functionLinenumber: 5252
    functionLinenumberEnd: 5256
    functionName: clr_config_environment
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_environment
    linkageType: ''
    returnType: int
    signature: "int clr_config_environment(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_environment
      Src: /src/lxc/src/lxc/confile.c:5261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5262
      start: 5258
    functionDepth: 2
    functionLinenumber: 5258
    functionLinenumberEnd: 5262
    functionName: clr_config_environment_runtime
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_environment
    linkageType: ''
    returnType: int
    signature: "int clr_config_environment_runtime(const char *key,\n\t\t\t\t\t\t
      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_environment
      Src: /src/lxc/src/lxc/confile.c:5267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5268
      start: 5264
    functionDepth: 2
    functionLinenumber: 5264
    functionLinenumberEnd: 5268
    functionName: clr_config_environment_hooks
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_environment
    linkageType: ''
    returnType: int
    signature: "int clr_config_environment_hooks(const char *key,\n\t\t\t\t\t       struct
      lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5275
      start: 5270
    functionDepth: 1
    functionLinenumber: 5270
    functionLinenumberEnd: 5275
    functionName: clr_config_execute_cmd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_execute_cmd(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5282
      start: 5277
    functionDepth: 1
    functionLinenumber: 5277
    functionLinenumberEnd: 5282
    functionName: clr_config_init_cmd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_init_cmd(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5289
      start: 5284
    functionDepth: 1
    functionLinenumber: 5284
    functionLinenumberEnd: 5289
    functionName: clr_config_init_cwd
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_init_cwd(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5291
    functionDepth: 0
    functionLinenumber: 5291
    functionLinenumberEnd: 5296
    functionName: clr_config_init_uid
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_init_uid(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5303
      start: 5298
    functionDepth: 0
    functionLinenumber: 5298
    functionLinenumberEnd: 5303
    functionName: clr_config_init_gid
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_init_gid(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5311
      start: 5305
    functionDepth: 1
    functionLinenumber: 5305
    functionLinenumberEnd: 5311
    functionName: clr_config_init_groups
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: int
    signature: "int clr_config_init_groups(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5318
      start: 5313
    functionDepth: 0
    functionLinenumber: 5313
    functionLinenumberEnd: 5318
    functionName: clr_config_ephemeral
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_ephemeral(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5325
      start: 5320
    functionDepth: 0
    functionLinenumber: 5320
    functionLinenumberEnd: 5325
    functionName: clr_config_no_new_privs
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_no_new_privs(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \ void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_limits
      Src: /src/lxc/src/lxc/confile.c:5330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5331
      start: 5327
    functionDepth: 2
    functionLinenumber: 5327
    functionLinenumberEnd: 5331
    functionName: clr_config_prlimit
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_clear_limits
    linkageType: ''
    returnType: int
    signature: "int clr_config_prlimit(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_sysctls
      Src: /src/lxc/src/lxc/confile.c:5336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5337
      start: 5333
    functionDepth: 2
    functionLinenumber: 5333
    functionLinenumberEnd: 5337
    functionName: clr_config_sysctl
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - lxc_clear_sysctls
    linkageType: ''
    returnType: int
    signature: "int clr_config_sysctl(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clear_procs
      Src: /src/lxc/src/lxc/confile.c:5342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5343
      start: 5339
    functionDepth: 2
    functionLinenumber: 5339
    functionLinenumberEnd: 5343
    functionName: clr_config_proc
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - lxc_clear_procs
    linkageType: ''
    returnType: int
    signature: "int clr_config_proc(const char *key, struct lxc_conf *c,\n\t\t\t\t
      \  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5349
      start: 5345
    functionDepth: 0
    functionLinenumber: 5345
    functionLinenumberEnd: 5349
    functionName: clr_config_includefiles
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_includefiles(const char *key, struct lxc_conf *c,\n\t\t\t\t\t
      \ void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5351
    functionDepth: 0
    functionLinenumber: 5351
    functionLinenumberEnd: 5356
    functionName: clr_config_namespace_clone
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_namespace_clone(const char *key,\n\t\t\t\t      struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5363
      start: 5358
    functionDepth: 0
    functionLinenumber: 5358
    functionLinenumberEnd: 5363
    functionName: clr_config_namespace_keep
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clr_config_namespace_keep(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5365
    functionDepth: 0
    functionLinenumber: 5365
    functionLinenumberEnd: 5370
    functionName: clr_config_time_offset_boot
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int clr_config_time_offset_boot(const char *key, struct lxc_conf *lxc_conf,
      void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5377
      start: 5372
    functionDepth: 0
    functionLinenumber: 5372
    functionLinenumberEnd: 5377
    functionName: clr_config_time_offset_monotonic
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int clr_config_time_offset_monotonic(const char *key, struct lxc_conf
      *lxc_conf, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:5385,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile.c:5386,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5387,1
    - Dst: lxc_namespace_2_ns_idx
      Src: /src/lxc/src/lxc/confile.c:5389,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:5393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5397
      start: 5379
    functionDepth: 2
    functionLinenumber: 5379
    functionLinenumberEnd: 5397
    functionName: clr_config_namespace_share
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    - STRLITERALLEN
    - free
    - is_empty_string
    - lxc_namespace_2_ns_idx
    linkageType: ''
    returnType: int
    signature: "int clr_config_namespace_share(const char *key,\n\t\t\t\t      struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5403
      start: 5399
    functionDepth: 1
    functionLinenumber: 5399
    functionLinenumberEnd: 5403
    functionName: get_config_includefiles
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_includefiles(const char *key, char *retv, int inlen,\n\t\t\t\t
      \  struct lxc_conf *c, void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile.c:5420,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5421,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/confile.c:5424,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:5424,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:5425,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:5429,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile.c:5430,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:5431,1
    - Dst: lxc_safe_int64_residual
      Src: /src/lxc/src/lxc/confile.c:5433,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/confile.c:5435,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:5438,1
    - Dst: lxc_get_netdev_by_idx
      Src: /src/lxc/src/lxc/confile.c:5441,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5443,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/confile.c:5447,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5448,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:5451,1
    - Dst: lxc_get_config_net
      Src: /src/lxc/src/lxc/confile.c:5455,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/confile.c:5457,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - key
    - lxc_conf
    - info
    - allocate
    argTypes:
    - char*
    - struct lxc_conf*
    - struct config_net_info*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5460
      start: 5412
    functionDepth: 3
    functionLinenumber: 5412
    functionLinenumberEnd: 5460
    functionName: get_network_config_ops
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_netdev_by_idx
    - syserror
    - syserror_set
    - ret_errno
    - STRLITERALLEN
    - strnequal
    - lxc_safe_int64_residual
    - isdigit
    - lxc_get_config_net
    - is_empty_string
    linkageType: ''
    returnType: int
    signature: "int get_network_config_ops(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \ struct config_net_info *info, bool allocate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:5473,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile.c:5474,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5475,1
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:5477,1
    - Dst: clr_config_jump_table_net
      Src: /src/lxc/src/lxc/confile.c:5478,1
    - Dst: get_network_config_ops
      Src: /src/lxc/src/lxc/confile.c:5480,1
    - Dst: struct config_net_info::ops::set
      Src: /src/lxc/src/lxc/confile.c:5484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5485
      start: 5466
    functionDepth: 4
    functionLinenumber: 5466
    functionLinenumberEnd: 5485
    functionName: set_config_jump_table_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - struct config_net_info::ops::set
    - get_network_config_ops
    - clr_config_jump_table_net
    - ret_errno
    - STRLITERALLEN
    - isdigit
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_jump_table_net(const char *key, const char *value,\n\t\t\t\t
      \    struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile.c:5495,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5496,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile.c:5503,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/confile.c:5503,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:5506,1
    - Dst: lxc_remove_nic_by_idx
      Src: /src/lxc/src/lxc/confile.c:5511,1
    - Dst: get_network_config_ops
      Src: /src/lxc/src/lxc/confile.c:5515,1
    - Dst: struct config_net_info::ops::clr
      Src: /src/lxc/src/lxc/confile.c:5519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5520
      start: 5487
    functionDepth: 4
    functionLinenumber: 5487
    functionLinenumberEnd: 5520
    functionName: clr_config_jump_table_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - get_network_config_ops
    - struct config_net_info::ops::clr
    - ret_errno
    - lxc_safe_uint
    - strrchr
    - isdigit
    - lxc_remove_nic_by_idx
    linkageType: ''
    returnType: int
    signature: "int clr_config_jump_table_net(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \    void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5528,1
    - Dst: lxc_clear_netdev
      Src: /src/lxc/src/lxc/confile.c:5530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5533
      start: 5522
    functionDepth: 2
    functionLinenumber: 5522
    functionLinenumberEnd: 5533
    functionName: clr_config_net_type
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - lxc_clear_netdev
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_type(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t
      \      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5546
      start: 5535
    functionDepth: 1
    functionLinenumber: 5535
    functionLinenumberEnd: 5546
    functionName: clr_config_net_name
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_name(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t
      \      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5559
      start: 5548
    functionDepth: 1
    functionLinenumber: 5548
    functionLinenumberEnd: 5559
    functionName: clr_config_net_flags
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_flags(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\tvoid
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5572
      start: 5561
    functionDepth: 1
    functionLinenumber: 5561
    functionLinenumberEnd: 5572
    functionName: clr_config_net_link
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_link(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t
      \      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5585
      start: 5574
    functionDepth: 1
    functionLinenumber: 5574
    functionLinenumberEnd: 5585
    functionName: clr_config_net_l2proxy
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_l2proxy(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t
      \      void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5601
      start: 5587
    functionDepth: 1
    functionLinenumber: 5587
    functionLinenumberEnd: 5601
    functionName: clr_config_net_macvlan_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_macvlan_mode(const char *key,\n\t\t\t\t       struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5617
      start: 5603
    functionDepth: 1
    functionLinenumber: 5603
    functionLinenumberEnd: 5617
    functionName: clr_config_net_ipvlan_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_ipvlan_mode(const char *key,\n\t\t\t\t       struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5633
      start: 5619
    functionDepth: 1
    functionLinenumber: 5619
    functionLinenumberEnd: 5633
    functionName: clr_config_net_ipvlan_isolation
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_ipvlan_isolation(const char *key,\n\t\t\t\t\t   struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5635
    functionDepth: 1
    functionLinenumber: 5635
    functionLinenumberEnd: 5649
    functionName: clr_config_net_veth_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_mode(const char *key,\n\t\t\t\t       struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5665
      start: 5651
    functionDepth: 1
    functionLinenumber: 5651
    functionLinenumberEnd: 5665
    functionName: clr_config_net_veth_n_rxqueues
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_n_rxqueues(const char *key, struct lxc_conf
      *lxc_conf,\n\t\t\t\t\t  void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5681
      start: 5667
    functionDepth: 1
    functionLinenumber: 5667
    functionLinenumberEnd: 5681
    functionName: clr_config_net_veth_n_txqueues
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_n_txqueues(const char *key, struct lxc_conf
      *lxc_conf,\n\t\t\t\t\t  void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5698
      start: 5684
    functionDepth: 1
    functionLinenumber: 5684
    functionLinenumberEnd: 5698
    functionName: clr_config_net_veth_pair
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_pair(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \   void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5715
      start: 5700
    functionDepth: 1
    functionLinenumber: 5700
    functionLinenumberEnd: 5715
    functionName: clr_config_net_veth_vlan_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_vlan_id(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \ void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5724,1
    - Dst: lxc_list_for_each_safe
      Src: /src/lxc/src/lxc/confile.c:5729,1
    - Dst: lxc_list_del
      Src: /src/lxc/src/lxc/confile.c:5730,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:5731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5735
      start: 5717
    functionDepth: 1
    functionLinenumber: 5717
    functionLinenumberEnd: 5735
    functionName: clr_config_net_veth_vlan_tagged_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - lxc_list_del
    - ret_errno
    - free
    - lxc_list_for_each_safe
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_vlan_tagged_id(const char *key,\n\t\t\t\t
      \      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5744,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5749
      start: 5738
    functionDepth: 1
    functionLinenumber: 5738
    functionLinenumberEnd: 5749
    functionName: clr_config_net_script_up
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_script_up(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \   void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5757,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5762
      start: 5751
    functionDepth: 1
    functionLinenumber: 5751
    functionLinenumberEnd: 5762
    functionName: clr_config_net_script_down
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_script_down(const char *key,\n\t\t\t\t      struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5770,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5775
      start: 5764
    functionDepth: 1
    functionLinenumber: 5764
    functionLinenumberEnd: 5775
    functionName: clr_config_net_hwaddr
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_hwaddr(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5783,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5788
      start: 5777
    functionDepth: 1
    functionLinenumber: 5777
    functionLinenumberEnd: 5788
    functionName: clr_config_net_mtu
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_mtu(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t
      \     void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5804
      start: 5790
    functionDepth: 1
    functionLinenumber: 5790
    functionLinenumberEnd: 5804
    functionName: clr_config_net_vlan_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_vlan_id(const char *key, struct lxc_conf *lxc_conf,\n\t\t\t\t
      \ void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5812,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5817
      start: 5806
    functionDepth: 1
    functionLinenumber: 5806
    functionLinenumberEnd: 5817
    functionName: clr_config_net_ipv4_gateway
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_ipv4_gateway(const char *key,\n\t\t\t\t       struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5826,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile.c:5828,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile.c:5829,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:5830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5834
      start: 5819
    functionDepth: 3
    functionLinenumber: 5819
    functionLinenumberEnd: 5834
    functionName: clr_config_net_ipv4_address
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry_safe
    - list_del
    - ret_errno
    - free
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_ipv4_address(const char *key,\n\t\t\t\t       struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5843,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile.c:5848,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile.c:5849,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:5850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5854
      start: 5836
    functionDepth: 3
    functionLinenumber: 5836
    functionLinenumberEnd: 5854
    functionName: clr_config_net_veth_ipv4_route
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry_safe
    - list_del
    - ret_errno
    - free
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_ipv4_route(const char *key,\n\t\t\t\t\t  struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5862,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/confile.c:5864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5867
      start: 5856
    functionDepth: 1
    functionLinenumber: 5856
    functionLinenumberEnd: 5867
    functionName: clr_config_net_ipv6_gateway
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - free_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_ipv6_gateway(const char *key,\n\t\t\t\t       struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5876,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile.c:5878,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile.c:5879,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:5880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5884
      start: 5869
    functionDepth: 3
    functionLinenumber: 5869
    functionLinenumberEnd: 5884
    functionName: clr_config_net_ipv6_address
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry_safe
    - list_del
    - ret_errno
    - free
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_ipv6_address(const char *key,\n\t\t\t\t       struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5893,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/confile.c:5898,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/confile.c:5899,1
    - Dst: free
      Src: /src/lxc/src/lxc/confile.c:5900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - lxc_conf
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5904
      start: 5886
    functionDepth: 3
    functionLinenumber: 5886
    functionLinenumberEnd: 5904
    functionName: clr_config_net_veth_ipv6_route
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry_safe
    - list_del
    - ret_errno
    - free
    linkageType: ''
    returnType: int
    signature: "int clr_config_net_veth_ipv6_route(const char *key,\n\t\t\t\t\t  struct
      lxc_conf *lxc_conf, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:5913,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile.c:5914,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5915,1
    - Dst: get_network_config_ops
      Src: /src/lxc/src/lxc/confile.c:5917,1
    - Dst: struct config_net_info::ops::get
      Src: /src/lxc/src/lxc/confile.c:5921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5922
      start: 5906
    functionDepth: 4
    functionLinenumber: 5906
    functionLinenumberEnd: 5922
    functionName: get_config_jump_table_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - get_network_config_ops
    - struct config_net_info::ops::get
    - ret_errno
    - STRLITERALLEN
    - isdigit
    linkageType: ''
    returnType: int
    signature: "int get_config_jump_table_net(const char *key, char *retv, int inlen,\n\t\t\t\t
      \    struct lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5932,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:5937,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:5939,1
    - Dst: lxc_net_type_to_str
      Src: /src/lxc/src/lxc/confile.c:5939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5942
      start: 5924
    functionDepth: 1
    functionLinenumber: 5924
    functionLinenumberEnd: 5942
    functionName: get_config_net_type
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - lxc_net_type_to_str
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_type(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5952,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:5957,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:5960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5963
      start: 5944
    functionDepth: 1
    functionLinenumber: 5944
    functionLinenumberEnd: 5963
    functionName: get_config_net_flags
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_flags(const char *key, char *retv, int inlen,\n\t\t\t\tstruct
      lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5973,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:5978,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:5981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5984
      start: 5965
    functionDepth: 1
    functionLinenumber: 5965
    functionLinenumberEnd: 5984
    functionName: get_config_net_link
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_link(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:5992,1
    - Dst: lxc_get_conf_bool
      Src: /src/lxc/src/lxc/confile.c:5994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5995
      start: 5986
    functionDepth: 2
    functionLinenumber: 5986
    functionLinenumberEnd: 5995
    functionName: get_config_net_l2proxy
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_bool
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_l2proxy(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6005,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6010,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6016
      start: 5997
    functionDepth: 1
    functionLinenumber: 5997
    functionLinenumberEnd: 6016
    functionName: get_config_net_name
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_name(const char *key, char *retv, int inlen,\n\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6027,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6030,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6035,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6055,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6058
      start: 6018
    functionDepth: 1
    functionLinenumber: 6018
    functionLinenumberEnd: 6058
    functionName: get_config_net_macvlan_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_macvlan_mode(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6069,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6072,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6077,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 6060
    functionDepth: 1
    functionLinenumber: 6060
    functionLinenumberEnd: 6097
    functionName: get_config_net_ipvlan_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_ipvlan_mode(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6108,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6111,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6116,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6136
      start: 6099
    functionDepth: 1
    functionLinenumber: 6099
    functionLinenumberEnd: 6136
    functionName: get_config_net_ipvlan_isolation
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_ipvlan_isolation(const char *key, char *retv, int
      inlen,\n\t\t\t\t       struct lxc_conf *c, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6147,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6150,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6155,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6138
    functionDepth: 1
    functionLinenumber: 6138
    functionLinenumberEnd: 6172
    functionName: get_config_net_veth_mode
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_mode(const char *key, char *retv, int inlen,\n\t\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6182,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6185,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6190,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6196
      start: 6174
    functionDepth: 1
    functionLinenumber: 6174
    functionLinenumberEnd: 6196
    functionName: get_config_net_veth_n_rxqueues
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_n_rxqueues(const char *key, char *retv, int
      inlen,\n\t\t\t\t     struct lxc_conf *c, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6206,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6209,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6214,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6220
      start: 6198
    functionDepth: 1
    functionLinenumber: 6198
    functionLinenumberEnd: 6220
    functionName: get_config_net_veth_n_txqueues
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_n_txqueues(const char *key, char *retv, int
      inlen,\n\t\t\t\t     struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6230,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6233,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6238,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6222
    functionDepth: 1
    functionLinenumber: 6222
    functionLinenumberEnd: 6246
    functionName: get_config_net_veth_pair
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_pair(const char *key, char *retv, int inlen,\n\t\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6256,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6259,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6264,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6270
      start: 6248
    functionDepth: 1
    functionLinenumber: 6248
    functionLinenumberEnd: 6270
    functionName: get_config_net_veth_vlan_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_vlan_id(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6283,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6286,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6291,1
    - Dst: lxc_list_len
      Src: /src/lxc/src/lxc/confile.c:6293,1
    - Dst: lxc_list_for_each
      Src: /src/lxc/src/lxc/confile.c:6295,1
    - Dst: PTR_TO_USHORT
      Src: /src/lxc/src/lxc/confile.c:6296,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6301
      start: 6272
    functionDepth: 1
    functionLinenumber: 6272
    functionLinenumberEnd: 6301
    functionName: get_config_net_veth_vlan_tagged_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_list_for_each
    - strprint
    - ret_errno
    - PTR_TO_USHORT
    - lxc_list_len
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_vlan_tagged_id(const char *key, char *retv,\n\t\t\t\t\t
      \     int inlen, struct lxc_conf *c,\n\t\t\t\t\t      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6311,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6316,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6322
      start: 6303
    functionDepth: 1
    functionLinenumber: 6303
    functionLinenumberEnd: 6322
    functionName: get_config_net_script_up
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_script_up(const char *key, char *retv, int inlen,\n\t\t\t\t
      \   struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6332,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6337,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6343
      start: 6324
    functionDepth: 1
    functionLinenumber: 6324
    functionLinenumberEnd: 6343
    functionName: get_config_net_script_down
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_script_down(const char *key, char *retv, int inlen,\n\t\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6353,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6358,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6364
      start: 6345
    functionDepth: 1
    functionLinenumber: 6345
    functionLinenumberEnd: 6364
    functionName: get_config_net_hwaddr
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_hwaddr(const char *key, char *retv, int inlen,\n\t\t\t\t
      struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6374,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6379,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6385
      start: 6366
    functionDepth: 1
    functionLinenumber: 6366
    functionLinenumberEnd: 6385
    functionName: get_config_net_mtu
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_mtu(const char *key, char *retv, int inlen,\n\t\t\t
      \     struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6395,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6398,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6403,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6408
      start: 6387
    functionDepth: 1
    functionLinenumber: 6387
    functionLinenumberEnd: 6408
    functionName: get_config_net_vlan_id
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_vlan_id(const char *key, char *retv, int inlen,\n\t\t\t\t
      \ struct lxc_conf *c, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6419,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6424,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6427,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6429,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile.c:6431,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6437
      start: 6410
    functionDepth: 1
    functionLinenumber: 6410
    functionLinenumberEnd: 6437
    functionName: get_config_net_ipv4_gateway
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - inet_ntop
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_ipv4_gateway(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6450,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6455,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/confile.c:6457,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:6459,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile.c:6460,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6467
      start: 6439
    functionDepth: 1
    functionLinenumber: 6439
    functionLinenumberEnd: 6467
    functionName: get_config_net_ipv4_address
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - list_len
    - inet_ntop
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_net_ipv4_address(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6480,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6483,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6488,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/confile.c:6490,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:6491,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile.c:6492,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6499
      start: 6469
    functionDepth: 1
    functionLinenumber: 6469
    functionLinenumberEnd: 6499
    functionName: get_config_net_veth_ipv4_route
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - list_len
    - inet_ntop
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_ipv4_route(const char *key, char *retv, int
      inlen,\n\t\t\t\t\t  struct lxc_conf *c, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6510,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6515,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6518,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6520,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile.c:6522,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6528
      start: 6501
    functionDepth: 1
    functionLinenumber: 6501
    functionLinenumberEnd: 6528
    functionName: get_config_net_ipv6_gateway
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - inet_ntop
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int get_config_net_ipv6_gateway(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6541,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6546,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/confile.c:6548,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:6549,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile.c:6550,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6557
      start: 6530
    functionDepth: 1
    functionLinenumber: 6530
    functionLinenumberEnd: 6557
    functionName: get_config_net_ipv6_address
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - list_len
    - inet_ntop
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_net_ipv6_address(const char *key, char *retv, int inlen,\n\t\t\t\t
      \      struct lxc_conf *c, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6570,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6573,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6578,1
    - Dst: list_len
      Src: /src/lxc/src/lxc/confile.c:6580,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/confile.c:6581,1
    - Dst: inet_ntop
      Src: /src/lxc/src/lxc/confile.c:6582,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6589
      start: 6559
    functionDepth: 1
    functionLinenumber: 6559
    functionLinenumberEnd: 6589
    functionName: get_config_net_veth_ipv6_route
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - list_len
    - inet_ntop
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int get_config_net_veth_ipv6_route(const char *key, char *retv, int
      inlen,\n\t\t\t\t\t  struct lxc_conf *c, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6600,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/confile.c:6602,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/confile.c:6605,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - retv
    - inlen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6612
      start: 6591
    functionDepth: 1
    functionLinenumber: 6591
    functionLinenumberEnd: 6612
    functionName: lxc_list_config_items
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 2
    functionsReached:
    - memset
    - strprint
    - strlen
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int lxc_list_config_items(char *retv, int inlen)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6623,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6625,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6626,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6627,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6628,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6629,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6630,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6631,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6632,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6633,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6634,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6635,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6636,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6637,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6638,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6639,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6640,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6641,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6642,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6643,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6644,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6645,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6646,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6647,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6648,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6649,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6650,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6651,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6652,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6653,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6654,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6655,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6656,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6657,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6658,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6659,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6660,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6661,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6662,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6663,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6664,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6665,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6666,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6667,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6668,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6669,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6670,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6671,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6672,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6673,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6674,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6675,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6676,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6677,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/confile.c:6678,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6679,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6681,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 4
    argNames:
    - conf
    - key
    - retv
    - inlen
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6685
      start: 6614
    functionDepth: 1
    functionLinenumber: 6614
    functionLinenumberEnd: 6685
    functionName: lxc_list_subkeys
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - memset
    - strprint
    - ret_errno
    - strequal
    linkageType: ''
    returnType: int
    signature: "int lxc_list_subkeys(struct lxc_conf *conf, const char *key, char
      *retv,\n\t\t     int inlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/confile.c:6695,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/confile.c:6696,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6697,1
    - Dst: get_network_config_ops
      Src: /src/lxc/src/lxc/confile.c:6699,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6702,1
    - Dst: memset
      Src: /src/lxc/src/lxc/confile.c:6709,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6711,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6712,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6713,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6716,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6717,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6718,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6719,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6720,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6721,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6722,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6723,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6724,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6729,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6730,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6731,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6732,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6735,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6738,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6739,1
    - Dst: strprint
      Src: /src/lxc/src/lxc/confile.c:6742,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - c
    - key
    - retv
    - inlen
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6749
      start: 6687
    functionDepth: 4
    functionLinenumber: 6687
    functionLinenumberEnd: 6749
    functionName: lxc_list_net
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached:
    - memset
    - get_network_config_ops
    - strprint
    - ret_errno
    - STRLITERALLEN
    - isdigit
    linkageType: ''
    returnType: int
    signature: int lxc_list_net(struct lxc_conf *c, const char *key, char *retv, int
      inlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_value_empty
      Src: /src/lxc/src/lxc/confile.c:6757,1
    - Dst: clr_config_sched_core
      Src: /src/lxc/src/lxc/confile.c:6758,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/confile.c:6760,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6762,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/confile.c:6765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - key
    - value
    - lxc_conf
    - data
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6769
      start: 6751
    functionDepth: 1
    functionLinenumber: 6751
    functionLinenumberEnd: 6769
    functionName: set_config_sched_core
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - lxc_safe_uint
    - clr_config_sched_core
    - lxc_config_value_empty
    linkageType: ''
    returnType: int
    signature: "int set_config_sched_core(const char *key, const char *value,\n\t\t\t\t
      struct lxc_conf *lxc_conf, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_get_conf_bool
      Src: /src/lxc/src/lxc/confile.c:6774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - key
    - retv
    - inlen
    - c
    - data
    argTypes:
    - char*
    - char*
    - int
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6775
      start: 6771
    functionDepth: 2
    functionLinenumber: 6771
    functionLinenumberEnd: 6775
    functionName: get_config_sched_core
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 0
    functionsReached:
    - lxc_get_conf_bool
    linkageType: ''
    returnType: int
    signature: "int get_config_sched_core(const char *key, char *retv, int inlen,\n\t\t\t\t
      struct lxc_conf *c, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - c
    - data
    argTypes:
    - char*
    - struct lxc_conf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6781
      start: 6777
    functionDepth: 0
    functionLinenumber: 6777
    functionLinenumberEnd: 6781
    functionName: clr_config_sched_core
    functionSourceFile: /src/lxc/src/lxc/confile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int clr_config_sched_core(const char *key, struct lxc_conf *c, void
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:35,1
    - Dst: memset
      Src: /src/lxc/src/lxc/af_unix.c:38,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/af_unix.c:42,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:46,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/af_unix.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - addr
    - path
    argTypes:
    - struct sockaddr_un*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 51
    functionName: lxc_abstract_unix_set_sockaddr
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - ret_errno
    - memcpy
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_abstract_unix_set_sockaddr(struct sockaddr_un *addr,\n\t\t\t\t\t
      \     const char *path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/lxc/src/lxc/af_unix.c:60,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/af_unix.c:65,1
    - Dst: lxc_abstract_unix_set_sockaddr
      Src: /src/lxc/src/lxc/af_unix.c:67,1
    - Dst: bind
      Src: /src/lxc/src/lxc/af_unix.c:71,1
    - Dst: listen
      Src: /src/lxc/src/lxc/af_unix.c:77,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/af_unix.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - path
    - type
    - flags
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 83
    functionName: lxc_abstract_unix_open
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 0
    functionsReached:
    - socket
    - listen
    - move_fd
    - bind
    - lxc_abstract_unix_set_sockaddr
    linkageType: ''
    returnType: int
    signature: int lxc_abstract_unix_open(const char *path, int type, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/lxc/af_unix.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: lxc_abstract_unix_close
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void lxc_abstract_unix_close(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/lxc/src/lxc/af_unix.c:97,1
    - Dst: lxc_abstract_unix_set_sockaddr
      Src: /src/lxc/src/lxc/af_unix.c:101,1
    - Dst: connect
      Src: /src/lxc/src/lxc/af_unix.c:105,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/af_unix.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 111
    functionName: lxc_abstract_unix_connect
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 2
    functionsReached:
    - connect
    - socket
    - move_fd
    - lxc_abstract_unix_set_sockaddr
    linkageType: ''
    returnType: int
    signature: int lxc_abstract_unix_connect(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/lxc/src/lxc/af_unix.c:120,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:123,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/af_unix.c:125,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:127,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/lxc/src/lxc/af_unix.c:132,1
    - Dst: CMSG_LEN
      Src: /src/lxc/src/lxc/af_unix.c:135,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/af_unix.c:139,1
    - Dst: CMSG_DATA
      Src: /src/lxc/src/lxc/af_unix.c:139,1
    - Dst: sendmsg
      Src: /src/lxc/src/lxc/af_unix.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - fd
    - sendfds
    - num_sendfds
    - iov
    - iovlen
    argTypes:
    - int
    - int*
    - int
    - struct iovec*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 149
    functionName: lxc_abstract_unix_send_fds_iov
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 1
    functionsReached:
    - CMSG_LEN
    - memcpy
    - ret_errno
    - sendmsg
    - CMSG_FIRSTHDR
    - CMSG_SPACE
    - CMSG_DATA
    - malloc
    linkageType: ''
    returnType: int
    signature: "int lxc_abstract_unix_send_fds_iov(int fd, const int *sendfds, int
      num_sendfds,\n\t\t\t\t   struct iovec *const iov, size_t iovlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_send_fds_iov
      Src: /src/lxc/src/lxc/af_unix.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fd
    - sendfds
    - num_sendfds
    - data
    - size
    argTypes:
    - int
    - int*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: lxc_abstract_unix_send_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 6
    functionsReached:
    - lxc_abstract_unix_send_fds_iov
    linkageType: ''
    returnType: int
    signature: "int lxc_abstract_unix_send_fds(int fd, const int *sendfds, int num_sendfds,\n\t\t\t
      \      void *data, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/af_unix.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fd
    - sendfds
    - num_sendfds
    - data
    - size
    argTypes:
    - int
    - int*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: lxc_unix_send_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_send_fds
    linkageType: ''
    returnType: int
    signature: "int lxc_unix_send_fds(int fd, int *sendfds, int num_sendfds, void
      *data,\n\t\t      size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/af_unix.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fd
    - fd_first
    - fd_second
    - data
    - size
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: __lxc_abstract_unix_send_two_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 3
    functionsReached:
    - lxc_abstract_unix_send_fds
    linkageType: ''
    returnType: int
    signature: "int __lxc_abstract_unix_send_two_fds(int fd, int fd_first, int fd_second,\n\t\t\t\t
      \    void *data, size_t size)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/lxc/src/lxc/af_unix.c:187,1
    - Dst: CMSG_SPACE
      Src: /src/lxc/src/lxc/af_unix.c:188,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:191,1
    - Dst: hweight32
      Src: /src/lxc/src/lxc/af_unix.c:193,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:194,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:197,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:200,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/af_unix.c:202,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:204,1
    - Dst: recvmsg
      Src: /src/lxc/src/lxc/af_unix.c:213,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/af_unix.c:218,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/lxc/src/lxc/af_unix.c:224,1
    - Dst: CMSG_NXTHDR
      Src: /src/lxc/src/lxc/af_unix.c:224,1
    - Dst: CMSG_DATA
      Src: /src/lxc/src/lxc/af_unix.c:235,1
    - Dst: CMSG_LEN
      Src: /src/lxc/src/lxc/af_unix.c:237,1
    - Dst: close
      Src: /src/lxc/src/lxc/af_unix.c:246,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/af_unix.c:248,1
    - Dst: close
      Src: /src/lxc/src/lxc/af_unix.c:253,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/af_unix.c:255,1
    - Dst: close
      Src: /src/lxc/src/lxc/af_unix.c:261,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/af_unix.c:263,1
    - Dst: close
      Src: /src/lxc/src/lxc/af_unix.c:279,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/af_unix.c:281,1
    - Dst: close
      Src: /src/lxc/src/lxc/af_unix.c:287,1
    - Dst: hweight32
      Src: /src/lxc/src/lxc/af_unix.c:296,1
    - Dst: close
      Src: /src/lxc/src/lxc/af_unix.c:298,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/af_unix.c:300,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/af_unix.c:304,1
    - Dst: CMSG_DATA
      Src: /src/lxc/src/lxc/af_unix.c:304,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/af_unix.c:316,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 4
    argNames:
    - fd
    - ret_fds
    - ret_iov
    - size_ret_iov
    argTypes:
    - int
    - struct unix_fds*
    - struct iovec*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 320
    functionName: lxc_abstract_unix_recv_fds_iov
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 0
    functionsReached:
    - syserror
    - CMSG_LEN
    - memcpy
    - ret_errno
    - hweight32
    - CMSG_FIRSTHDR
    - close
    - syserror_set
    - CMSG_SPACE
    - CMSG_NXTHDR
    - CMSG_DATA
    - recvmsg
    - zalloc
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_abstract_unix_recv_fds_iov(int fd,\n\t\t\t\t\t      struct
      unix_fds *ret_fds,\n\t\t\t\t\t      struct iovec *ret_iov,\n\t\t\t\t\t      size_t
      size_ret_iov)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_recv_fds_iov
      Src: /src/lxc/src/lxc/af_unix.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - ret_fds
    - ret_data
    - size_ret_data
    argTypes:
    - int
    - struct unix_fds*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 337
    functionName: lxc_abstract_unix_recv_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_recv_fds_iov
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_abstract_unix_recv_fds(int fd, struct unix_fds *ret_fds,\n\t\t\t\t
      \  void *ret_data, size_t size_ret_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/af_unix.c:342,1
    - Dst: lxc_abstract_unix_recv_fds_iov
      Src: /src/lxc/src/lxc/af_unix.c:354,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:359,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/af_unix.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - ret_fd
    - ret_data
    - size_ret_data
    argTypes:
    - int
    - int*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 367
    functionName: lxc_abstract_unix_recv_one_fd
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 5
    functionsReached:
    - ret_errno
    - call_cleaner
    - lxc_abstract_unix_recv_fds_iov
    - move_fd
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_abstract_unix_recv_one_fd(int fd, int *ret_fd, void *ret_data,\n\t\t\t\t
      \     size_t size_ret_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/af_unix.c:372,1
    - Dst: lxc_abstract_unix_recv_fds_iov
      Src: /src/lxc/src/lxc/af_unix.c:384,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:389,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/af_unix.c:395,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/af_unix.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - fd
    - fd_first
    - fd_second
    - data
    - size
    argTypes:
    - int
    - int*
    - int*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 400
    functionName: __lxc_abstract_unix_recv_two_fds
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 3
    functionsReached:
    - ret_errno
    - call_cleaner
    - lxc_abstract_unix_recv_fds_iov
    - move_fd
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t __lxc_abstract_unix_recv_two_fds(int fd, int *fd_first, int
      *fd_second,\n\t\t\t\t\t void *data, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/af_unix.c:408,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/af_unix.c:409,1
    - Dst: getgid
      Src: /src/lxc/src/lxc/af_unix.c:410,1
    - Dst: CMSG_SPACE
      Src: /src/lxc/src/lxc/af_unix.c:412,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/lxc/src/lxc/af_unix.c:418,1
    - Dst: CMSG_LEN
      Src: /src/lxc/src/lxc/af_unix.c:419,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/af_unix.c:422,1
    - Dst: CMSG_DATA
      Src: /src/lxc/src/lxc/af_unix.c:422,1
    - Dst: sendmsg
      Src: /src/lxc/src/lxc/af_unix.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 433
    functionName: lxc_abstract_unix_send_credential
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 3
    functionsReached:
    - CMSG_LEN
    - memcpy
    - getgid
    - sendmsg
    - CMSG_FIRSTHDR
    - CMSG_SPACE
    - getuid
    - CMSG_DATA
    - lxc_raw_getpid
    linkageType: ''
    returnType: int
    signature: int lxc_abstract_unix_send_credential(int fd, void *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/lxc/src/lxc/af_unix.c:442,1
    - Dst: recvmsg
      Src: /src/lxc/src/lxc/af_unix.c:455,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/lxc/src/lxc/af_unix.c:459,1
    - Dst: CMSG_LEN
      Src: /src/lxc/src/lxc/af_unix.c:461,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/af_unix.c:464,1
    - Dst: CMSG_DATA
      Src: /src/lxc/src/lxc/af_unix.c:464,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/af_unix.c:466,1
    - Dst: getgid
      Src: /src/lxc/src/lxc/af_unix.c:466,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/af_unix.c:467,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 471
    functionName: lxc_abstract_unix_rcv_credential
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 2
    functionsReached:
    - CMSG_LEN
    - memcpy
    - getgid
    - syserror_set
    - CMSG_FIRSTHDR
    - CMSG_SPACE
    - getuid
    - CMSG_DATA
    - recvmsg
    linkageType: ''
    returnType: int
    signature: int lxc_abstract_unix_rcv_credential(int fd, void *data, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/af_unix.c:477,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:479,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:481,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:483,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/af_unix.c:486,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/af_unix.c:493,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/af_unix.c:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ret
    - path
    argTypes:
    - struct sockaddr_un*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 499
    functionName: lxc_unix_sockaddr
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 1
    functionsReached:
    - strlen
    - ret_errno
    - memcpy
    linkageType: ''
    returnType: int
    signature: int lxc_unix_sockaddr(struct sockaddr_un *ret, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/lxc/src/lxc/af_unix.c:507,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/af_unix.c:509,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/af_unix.c:512,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/af_unix.c:514,1
    - Dst: connect
      Src: /src/lxc/src/lxc/af_unix.c:516,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/af_unix.c:519,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/af_unix.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - addr
    - type
    argTypes:
    - struct sockaddr_un*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 522
    functionName: lxc_unix_connect_type
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 2
    functionsReached:
    - connect
    - socket
    - syserror
    - strlen
    - move_fd
    linkageType: ''
    returnType: int
    signature: int lxc_unix_connect_type(struct sockaddr_un *addr, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_unix_connect_type
      Src: /src/lxc/src/lxc/af_unix.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_un*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: lxc_unix_connect
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 0
    functionsReached:
    - lxc_unix_connect_type
    linkageType: ''
    returnType: int
    signature: int lxc_unix_connect(struct sockaddr_un *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/lxc/src/lxc/af_unix.c:535,1
    - Dst: setsockopt
      Src: /src/lxc/src/lxc/af_unix.c:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - rcv_timeout
    - snd_timeout
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 547
    functionName: lxc_socket_set_timeout
    functionSourceFile: /src/lxc/src/lxc/af_unix.c
    functionUses: 3
    functionsReached:
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int lxc_socket_set_timeout(int fd, int rcv_timeout, int snd_timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - lxc_cmd_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 99
    functionName: lxc_cmd_str
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *lxc_cmd_str(lxc_cmd_t cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/commands.c:106,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/commands.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fds
    - ctx
    argTypes:
    - struct unix_fds*
    - struct cgroup_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: __transfer_cgroup_ctx_fds
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - syswarn_set
    - memcpy
    linkageType: ''
    returnType: int
    signature: int __transfer_cgroup_ctx_fds(struct unix_fds *fds, struct cgroup_ctx
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fds
    - fd
    argTypes:
    - struct unix_fds*
    - struct cgroup_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: __transfer_cgroup_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - move_fd
    linkageType: ''
    returnType: int
    signature: int __transfer_cgroup_fd(struct unix_fds *fds, struct cgroup_fd *fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_recv_fds
      Src: /src/lxc/src/lxc/commands.c:126,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/commands.c:128,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/commands.c:137,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/commands.c:141,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/commands.c:145,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/commands.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - fd_sock
    - fds
    - rsp
    - cur_cmdstr
    argTypes:
    - int
    - struct unix_fds*
    - struct lxc_cmd_rsp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: lxc_cmd_rsp_recv_fds
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - log_debug
    - log_error
    - DEBUG
    - lxc_abstract_unix_recv_fds
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_cmd_rsp_recv_fds(int fd_sock, struct unix_fds *fds,\n\t\t\t\t
      \   struct lxc_cmd_rsp *rsp,\n\t\t\t\t    const char *cur_cmdstr)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/commands.c:171,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:183,1
    - Dst: lxc_cmd_rsp_recv_fds
      Src: /src/lxc/src/lxc/commands.c:227,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:237,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:254,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:254,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/commands.c:255,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:255,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:260,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:267,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/commands.c:280,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:284,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:285,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:290,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/commands.c:293,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/commands.c:298,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:312,1
    - Dst: lxc_recv_nointr
      Src: /src/lxc/src/lxc/commands.c:315,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/commands.c:317,1
    - Dst: __transfer_cgroup_ctx_fds
      Src: /src/lxc/src/lxc/commands.c:322,1
    - Dst: __transfer_cgroup_fd
      Src: /src/lxc/src/lxc/commands.c:327,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/commands.c:333,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/commands.c:336,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 108
    argCount: 2
    argNames:
    - sock
    - cmd
    argTypes:
    - int
    - struct lxc_cmd_rr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 338
    functionName: lxc_cmd_rsp_recv
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - syserror
    - __transfer_cgroup_fd
    - syserror_set
    - lxc_cmd_str
    - move_ptr
    - zalloc
    - INT_TO_PTR
    - PTR_TO_INT
    - lxc_cmd_rsp_recv_fds
    - syserror_ret
    - move_fd
    - __transfer_cgroup_ctx_fds
    - log_debug
    - call_cleaner
    - lxc_recv_nointr
    - malloc
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lxc_cmd_rsp_recv(int sock, struct lxc_cmd_rr *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/commands.c:352,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/commands.c:354,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/commands.c:359,1
    - Dst: syswarn
      Src: /src/lxc/src/lxc/commands.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - rsp
    argTypes:
    - int
    - struct lxc_cmd_rsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: __lxc_cmd_rsp_send
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_send_nointr
    - syserror
    - syswarn
    linkageType: ''
    returnType: int
    signature: int __lxc_cmd_rsp_send(int fd, struct lxc_cmd_rsp *rsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_rsp_send
      Src: /src/lxc/src/lxc/commands.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - rsp
    argTypes:
    - int
    - struct lxc_cmd_rsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: lxc_cmd_rsp_send_reap
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - __lxc_cmd_rsp_send
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_rsp_send_reap(int fd, struct lxc_cmd_rsp *rsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_rsp_send
      Src: /src/lxc/src/lxc/commands.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - rsp
    argTypes:
    - int
    - struct lxc_cmd_rsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: lxc_cmd_rsp_send_keep
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - __lxc_cmd_rsp_send
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_rsp_send_keep(int fd, struct lxc_cmd_rsp *rsp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/commands.c:392,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/commands.c:397,1
    - Dst: syswarn
      Src: /src/lxc/src/lxc/commands.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - fd_send
    - rsp
    argTypes:
    - int
    - int
    - struct lxc_cmd_rsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 403
    functionName: rsp_one_fd_reap
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_send_fds
    - syswarn
    - lxc_send_nointr
    linkageType: ''
    returnType: int
    signature: int rsp_one_fd_reap(int fd, int fd_send, struct lxc_cmd_rsp *rsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rsp_one_fd_reap
      Src: /src/lxc/src/lxc/commands.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - fd_send
    - rsp
    argTypes:
    - int
    - int
    - struct lxc_cmd_rsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 414
    functionName: rsp_one_fd_keep
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - rsp_one_fd_reap
    linkageType: ''
    returnType: int
    signature: int rsp_one_fd_keep(int fd, int fd_send, struct lxc_cmd_rsp *rsp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:424,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:427,1
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/commands.c:430,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/commands.c:435,1
    - Dst: syswarn
      Src: /src/lxc/src/lxc/commands.c:437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - fd
    - fds_len
    - fds
    - rsp
    argTypes:
    - int
    - __u32
    - __s32[]
    - struct lxc_cmd_rsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 441
    functionName: rsp_many_fds_reap
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_send_fds
    - lxc_cmd_rsp_send_reap
    - syswarn
    - lxc_send_nointr
    linkageType: ''
    returnType: int
    signature: "int rsp_many_fds_reap(int fd, __u32 fds_len,\n\t\t\t\t\t      const
      __s32 fds[static 2],\n\t\t\t\t\t      struct lxc_cmd_rsp *rsp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_connect
      Src: /src/lxc/src/lxc/commands.c:449,1
    - Dst: lxc_abstract_unix_send_credential
      Src: /src/lxc/src/lxc/commands.c:453,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:459,1
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/commands.c:460,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:465,1
    - Dst: lxc_send_nointr
      Src: /src/lxc/src/lxc/commands.c:468,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:474,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 5
    argNames:
    - name
    - cmd
    - lxcpath
    - hashed_sock_name
    - rcv_timeout
    argTypes:
    - char*
    - struct lxc_cmd_rr*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 475
    functionName: lxc_cmd_send
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_send_nointr
    - lxc_abstract_unix_send_credential
    - lxc_cmd_connect
    - move_fd
    - lxc_abstract_unix_send_fds
    - PTR_TO_INT
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_send(const char *name, struct lxc_cmd_rr *cmd,\n\t\t\tconst
      char *lxcpath, const char *hashed_sock_name, int rcv_timeout)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_send
      Src: /src/lxc/src/lxc/commands.c:520,1
    - Dst: systrace
      Src: /src/lxc/src/lxc/commands.c:525,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:525,1
    - Dst: lxc_cmd_rsp_recv
      Src: /src/lxc/src/lxc/commands.c:528,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:532,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:533,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:536,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 6
    argNames:
    - name
    - cmd
    - stopped
    - lxcpath
    - hashed_sock_name
    - rcv_timeout
    argTypes:
    - char*
    - struct lxc_cmd_rr*
    - bool*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 539
    functionName: lxc_cmd_timeout
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_recv
    - lxc_cmd_str
    - systrace
    - TRACE
    - move_fd
    - lxc_cmd_send
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_cmd_timeout(const char *name, struct lxc_cmd_rr *cmd,
      bool *stopped,\n\t\t       const char *lxcpath, const char *hashed_sock_name,
      int rcv_timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_timeout
      Src: /src/lxc/src/lxc/commands.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - name
    - cmd
    - stopped
    - lxcpath
    - hashed_sock_name
    argTypes:
    - char*
    - struct lxc_cmd_rr*
    - bool*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 541
    functionDepth: 6
    functionLinenumber: 541
    functionLinenumberEnd: 545
    functionName: lxc_cmd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_timeout
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t lxc_cmd(const char *name, struct lxc_cmd_rr *cmd, bool *stopped,\n\t\t
      \      const char *lxcpath, const char *hashed_sock_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:553,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 547
    functionDepth: 7
    functionLinenumber: 547
    functionLinenumberEnd: 573
    functionName: lxc_try_cmd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_init
    - lxc_cmd
    linkageType: ''
    returnType: int
    signature: int lxc_try_cmd(const char *name, const char *lxcpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/lxc/src/lxc/commands.c:586,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - req
    argTypes:
    - int
    - struct lxc_cmd_req*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 596
    functionName: validate_string_request
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - strnlen
    linkageType: ''
    returnType: int
    signature: int validate_string_request(int fd, const struct lxc_cmd_req *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:615,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:617,1
    - Dst: PTR_TO_PID
      Src: /src/lxc/src/lxc/commands.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 608
    functionDepth: 7
    functionLinenumber: 608
    functionLinenumberEnd: 630
    functionName: lxc_cmd_get_init_pid
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 2
    functionsReached:
    - lxc_cmd_init
    - PTR_TO_PID
    - lxc_cmd
    linkageType: ''
    returnType: pid_t
    signature: pid_t lxc_cmd_get_init_pid(const char *name, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PID_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:637,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 641
    functionName: lxc_cmd_get_init_pid_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - PID_TO_PTR
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_init_pid_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      struct lxc_handler *handler,\n\t\t\t\t\t struct lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:650,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:652,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:654,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:655,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:658,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:659,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:661,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:663,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 643
    functionDepth: 7
    functionLinenumber: 643
    functionLinenumberEnd: 667
    functionName: lxc_cmd_get_init_pidfd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 2
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_init
    - lxc_cmd
    - PTR_TO_INT
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_init_pidfd(const char *name, const char *lxcpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:678,1
    - Dst: rsp_one_fd_reap
      Src: /src/lxc/src/lxc/commands.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 682
    functionName: lxc_cmd_get_init_pidfd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - rsp_one_fd_reap
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_init_pidfd_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \  struct lxc_handler *handler,\n\t\t\t\t\t   struct lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:691,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:693,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:695,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:696,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:699,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:700,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:702,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:704,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 684
    functionDepth: 7
    functionLinenumber: 684
    functionLinenumberEnd: 707
    functionName: lxc_cmd_get_devpts_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 2
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_init
    - lxc_cmd
    - PTR_TO_INT
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_devpts_fd(const char *name, const char *lxcpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:718,1
    - Dst: rsp_one_fd_reap
      Src: /src/lxc/src/lxc/commands.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 709
    functionDepth: 4
    functionLinenumber: 709
    functionLinenumberEnd: 722
    functionName: lxc_cmd_get_devpts_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - rsp_one_fd_reap
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_devpts_fd_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \ struct lxc_handler *handler,\n\t\t\t\t\t  struct lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:732,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:734,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:736,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:737,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:740,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:741,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:743,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:745,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:746,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/commands.c:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 724
    functionDepth: 7
    functionLinenumber: 724
    functionLinenumberEnd: 751
    functionName: lxc_cmd_get_seccomp_notify_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - ret_errno
    - lxc_cmd_str
    - lxc_cmd_init
    - lxc_cmd
    - PTR_TO_INT
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_seccomp_notify_fd(const char *name, const char *lxcpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:763,1
    - Dst: rsp_one_fd_reap
      Src: /src/lxc/src/lxc/commands.c:766,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 770
    functionName: lxc_cmd_get_seccomp_notify_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - rsp_one_fd_reap
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_seccomp_notify_fd_callback(int fd, struct lxc_cmd_req
      *req,\n\t\t\t\t\t\t  struct lxc_handler *handler,\n\t\t\t\t\t\t  struct lxc_async_descr
      *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:779,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:780,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:782,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:784,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:785,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:792,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - name
    - lxcpath
    - size_ret_ctx
    - ret_ctx
    argTypes:
    - char*
    - char*
    - size_t
    - struct cgroup_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 772
    functionDepth: 7
    functionLinenumber: 772
    functionLinenumberEnd: 797
    functionName: lxc_cmd_get_cgroup_ctx
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_data
    - lxc_cmd_init
    - lxc_cmd
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_cgroup_ctx(const char *name, const char *lxcpath,\n\t\t\t
      \  size_t size_ret_ctx, struct cgroup_ctx *ret_ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_struct_from_client
      Src: /src/lxc/src/lxc/commands.c:810,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:813,1
    - Dst: prepare_cgroup_ctx
      Src: /src/lxc/src/lxc/commands.c:815,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:818,1
    - Dst: min
      Src: /src/lxc/src/lxc/commands.c:823,1
    - Dst: rsp_many_fds_reap
      Src: /src/lxc/src/lxc/commands.c:824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 825
    functionName: lxc_cmd_get_cgroup_ctx_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - copy_struct_from_client
    - rsp_many_fds_reap
    - lxc_cmd_rsp_send_reap
    - prepare_cgroup_ctx
    - min
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_cgroup_ctx_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \  struct lxc_handler *handler,\n\t\t\t\t\t   struct lxc_async_descr *descr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:841,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:843,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 835
    functionDepth: 7
    functionLinenumber: 835
    functionLinenumberEnd: 848
    functionName: lxc_cmd_get_clone_flags
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_init
    - lxc_cmd
    - PTR_TO_INT
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_clone_flags(const char *name, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:855,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 859
    functionName: lxc_cmd_get_clone_flags_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - INT_TO_PTR
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_clone_flags_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \   struct lxc_handler *handler,\n\t\t\t\t\t    struct lxc_async_descr *descr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:870,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:872,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands.c:872,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:874,1
    - Dst: lxc_cmd_get_cgroup_path_callback
      Src: /src/lxc/src/lxc/commands.c:887,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - name
    - lxcpath
    - controller
    - command
    argTypes:
    - char*
    - char*
    - char*
    - lxc_cmd_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 861
    functionDepth: 7
    functionLinenumber: 861
    functionLinenumberEnd: 898
    functionName: lxc_cmd_get_cgroup_path_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_data
    - lxc_cmd_init
    - strlen
    - lxc_cmd
    - lxc_cmd_get_cgroup_path_callback
    linkageType: ''
    returnType: char
    signature: "char *lxc_cmd_get_cgroup_path_callback(const char *name,\n\t\t\t\t\t
      \     const char *lxcpath,\n\t\t\t\t\t      const char *controller,\n\t\t\t\t\t
      \     lxc_cmd_t command)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_cgroup_path_callback
      Src: /src/lxc/src/lxc/commands.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - lxcpath
    - controller
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 912
    functionDepth: 8
    functionLinenumber: 912
    functionLinenumberEnd: 917
    functionName: lxc_cmd_get_cgroup_path
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_get_cgroup_path_callback
    linkageType: ''
    returnType: char
    signature: "char *lxc_cmd_get_cgroup_path(const char *name, const char *lxcpath,\n\t\t\t
      \     const char *controller)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_get_cgroup_path_callback
      Src: /src/lxc/src/lxc/commands.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - lxcpath
    - controller
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 933
    functionDepth: 8
    functionLinenumber: 933
    functionLinenumberEnd: 938
    functionName: lxc_cmd_get_limit_cgroup_path
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_get_cgroup_path_callback
    linkageType: ''
    returnType: char
    signature: "char *lxc_cmd_get_limit_cgroup_path(const char *name, const char *lxcpath,\n\t\t\t\t
      \   const char *controller)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_string_request
      Src: /src/lxc/src/lxc/commands.c:953,1
    - Dst: get_fn
      Src: /src/lxc/src/lxc/commands.c:964,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands.c:970,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - fd
    - req
    - handler
    - descr
    - limiting_cgroup
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 940
    functionDepth: 4
    functionLinenumber: 940
    functionLinenumberEnd: 974
    functionName: __lxc_cmd_get_cgroup_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - get_fn
    - lxc_cmd_rsp_send_reap
    - validate_string_request
    - strlen
    linkageType: ''
    returnType: int
    signature: "int __lxc_cmd_get_cgroup_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      struct lxc_handler *handler,\n\t\t\t\t\t struct lxc_async_descr *descr,\n\t\t\t\t\t
      bool limiting_cgroup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_get_cgroup_callback
      Src: /src/lxc/src/lxc/commands.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 976
    functionDepth: 5
    functionLinenumber: 976
    functionLinenumberEnd: 981
    functionName: lxc_cmd_get_cgroup_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - __lxc_cmd_get_cgroup_callback
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_cgroup_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t
      \      struct lxc_handler *handler,\n\t\t\t\t       struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_get_cgroup_callback
      Src: /src/lxc/src/lxc/commands.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 983
    functionDepth: 5
    functionLinenumber: 983
    functionLinenumberEnd: 988
    functionName: lxc_cmd_get_limit_cgroup_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - __lxc_cmd_get_cgroup_callback
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_limit_cgroup_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \    struct lxc_handler *handler,\n\t\t\t\t\t     struct lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/commands.c:1007,1
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1010,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1011,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands.c:1011,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - name
    - item
    - lxcpath
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1000
    functionDepth: 7
    functionLinenumber: 1000
    functionLinenumberEnd: 1021
    functionName: lxc_cmd_get_config_item
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 2
    functionsReached:
    - lxc_cmd_data
    - lxc_cmd_init
    - strlen
    - lxc_cmd
    - is_empty_string
    linkageType: ''
    returnType: char
    signature: "char *lxc_cmd_get_config_item(const char *name, const char *item,\n\t\t\t
      \     const char *lxcpath)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/commands.c:1032,1
    - Dst: lxc_get_config
      Src: /src/lxc/src/lxc/commands.c:1033,1
    - Dst: struct lxc_config_t*::get
      Src: /src/lxc/src/lxc/commands.c:1034,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/commands.c:1038,1
    - Dst: struct lxc_config_t*::get
      Src: /src/lxc/src/lxc/commands.c:1039,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1023
    functionDepth: 3
    functionLinenumber: 1023
    functionLinenumberEnd: 1052
    functionName: lxc_cmd_get_config_item_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_cmd_rsp_send_reap
    - struct lxc_config_t*::get
    - lxc_get_config
    - must_realloc
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_config_item_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \   struct lxc_handler *handler,\n\t\t\t\t\t    struct lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1068,1
    - Dst: lxc_cmd_timeout
      Src: /src/lxc/src/lxc/commands.c:1070,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/commands.c:1078,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/commands.c:1080,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1080,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/commands.c:1082,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1082,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - name
    - lxcpath
    - timeout
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1062
    functionDepth: 6
    functionLinenumber: 1062
    functionLinenumberEnd: 1083
    functionName: lxc_cmd_get_state
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - log_warn
    - lxc_state2str
    - lxc_cmd_init
    - lxc_cmd_timeout
    - log_debug
    - PTR_TO_INT
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_state(const char *name, const char *lxcpath, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1090,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1085
    functionDepth: 3
    functionLinenumber: 1085
    functionLinenumberEnd: 1094
    functionName: lxc_cmd_get_state_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - INT_TO_PTR
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_state_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t
      \     struct lxc_handler *handler,\n\t\t\t\t      struct lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1111,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1113,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/commands.c:1116,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:1125,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/commands.c:1127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1105
    functionDepth: 7
    functionLinenumber: 1105
    functionLinenumberEnd: 1128
    functionName: lxc_cmd_stop
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_init
    - log_info
    - log_error_errno
    - lxc_cmd
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_stop(const char *name, const char *lxcpath)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/commands.c:1141,1
    - Dst: lxc_raw_pidfd_send_signal
      Src: /src/lxc/src/lxc/commands.c:1144,1
    - Dst: kill
      Src: /src/lxc/src/lxc/commands.c:1146,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:1149,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:1151,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/commands.c:1153,1
    - Dst: __cgroup_unfreeze
      Src: /src/lxc/src/lxc/commands.c:1154,1
    - Dst: struct cgroup_ops*::unfreeze
      Src: /src/lxc/src/lxc/commands.c:1156,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/commands.c:1158,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1130
    functionDepth: 3
    functionLinenumber: 1130
    functionLinenumberEnd: 1166
    functionName: lxc_cmd_stop_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - memset
    - WARN
    - lxc_cmd_rsp_send_reap
    - kill
    - pure_unified_layout
    - struct cgroup_ops*::unfreeze
    - TRACE
    - __cgroup_unfreeze
    - lxc_raw_pidfd_send_signal
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_stop_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t
      struct lxc_handler *handler,\n\t\t\t\t struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1179
    functionName: lxc_cmd_terminal_winch
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_terminal_winch(const char *name, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1187
    functionName: lxc_cmd_terminal_winch_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - syserror_set
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_terminal_winch_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \  struct lxc_handler *handler,\n\t\t\t\t\t   struct lxc_async_descr *descr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1207,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1208,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1208,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1210,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:1212,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1213,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:1217,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/commands.c:1220,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/commands.c:1223,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/commands.c:1229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - name
    - ttynum
    - fd
    - lxcpath
    argTypes:
    - char*
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1200
    functionDepth: 7
    functionLinenumber: 1200
    functionLinenumberEnd: 1231
    functionName: lxc_cmd_get_tty_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 2
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_data
    - lxc_cmd_init
    - log_error
    - lxc_cmd
    - INT_TO_PTR
    - INFO
    - log_error_errno
    - sysdebug
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_tty_fd(const char *name, int *ttynum, int *fd, const
      char *lxcpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1242,1
    - Dst: lxc_terminal_allocate
      Src: /src/lxc/src/lxc/commands.c:1243,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1245,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1248,1
    - Dst: rsp_one_fd_keep
      Src: /src/lxc/src/lxc/commands.c:1249,1
    - Dst: lxc_terminal_free
      Src: /src/lxc/src/lxc/commands.c:1251,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/commands.c:1255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1233
    functionDepth: 7
    functionLinenumber: 1233
    functionLinenumberEnd: 1257
    functionName: lxc_cmd_get_tty_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - rsp_one_fd_keep
    - INT_TO_PTR
    - lxc_terminal_allocate
    - lxc_terminal_free
    - DEBUG
    - PTR_TO_INT
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_tty_fd_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t
      \      struct lxc_handler *handler,\n\t\t\t\t       struct lxc_async_descr *descr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1272,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - hashed_sock_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1266
    functionDepth: 7
    functionLinenumber: 1266
    functionLinenumberEnd: 1282
    functionName: lxc_cmd_get_name
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_init
    - lxc_cmd
    linkageType: ''
    returnType: char
    signature: char *lxc_cmd_get_name(const char *hashed_sock_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/commands.c:1290,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands.c:1293,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1284
    functionDepth: 3
    functionLinenumber: 1284
    functionLinenumberEnd: 1297
    functionName: lxc_cmd_get_name_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_cmd_rsp_send_reap
    - strlen
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_name_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t
      \    struct lxc_handler *handler,\n\t\t\t\t     struct lxc_async_descr *descr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1312,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - hashed_sock_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1306
    functionDepth: 7
    functionLinenumber: 1306
    functionLinenumberEnd: 1322
    functionName: lxc_cmd_get_lxcpath
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_init
    - lxc_cmd
    linkageType: ''
    returnType: char
    signature: char *lxc_cmd_get_lxcpath(const char *hashed_sock_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands.c:1331,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1324
    functionDepth: 3
    functionLinenumber: 1324
    functionLinenumberEnd: 1335
    functionName: lxc_cmd_get_lxcpath_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - strlen
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_lxcpath_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\tstruct
      lxc_handler *handler,\n\t\t\t\t\tstruct lxc_async_descr *descr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1343,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1337
    functionDepth: 7
    functionLinenumber: 1337
    functionLinenumberEnd: 1353
    functionName: lxc_cmd_get_systemd_scope
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_init
    - lxc_cmd
    linkageType: ''
    returnType: char
    signature: char *lxc_cmd_get_systemd_scope(const char *name, const char *lxcpath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/lxc/src/lxc/commands.c:1368,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/commands.c:1372,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands.c:1380,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1383,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1384
    functionName: lxc_cmd_get_systemd_scope_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - strrchr
    - strdup
    - strlen
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_systemd_scope_callback(int fd, struct lxc_cmd_req
      *req,\n\t\t\t\t\t     struct lxc_handler *handler,\n\t\t\t\t\t     struct lxc_async_descr
      *descr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1396,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1397,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1399,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/commands.c:1405,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:1415,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1417,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/commands.c:1419,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/commands.c:1419,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:1421,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:1422,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - name
    - lxcpath
    - states
    - state_client_fd
    argTypes:
    - char*
    - char*
    - lxc_state_t[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1386
    functionDepth: 7
    functionLinenumber: 1386
    functionLinenumberEnd: 1424
    functionName: lxc_cmd_add_state_client
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 3
    functionsReached:
    - lxc_cmd_data
    - lxc_state2str
    - lxc_cmd_init
    - SYSERROR
    - lxc_cmd
    - log_trace
    - TRACE
    - move_fd
    - PTR_TO_INT
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_add_state_client(const char *name, const char *lxcpath,\n\t\t\t
      \    lxc_state_t states[static MAX_STATE],\n\t\t\t     int *state_client_fd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_add_state_client
      Src: /src/lxc/src/lxc/commands.c:1443,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1447,1
    - Dst: lxc_cmd_rsp_send_keep
      Src: /src/lxc/src/lxc/commands.c:1449,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1452,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - int
    - req
    - handler
    - descr
    argTypes:
    - __owns
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1426
    functionDepth: 3
    functionLinenumber: 1426
    functionLinenumberEnd: 1453
    functionName: lxc_cmd_add_state_client_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_add_state_client
    - lxc_cmd_rsp_send_reap
    - lxc_cmd_rsp_send_keep
    - INT_TO_PTR
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_add_state_client_callback(__owns int fd, struct lxc_cmd_req
      *req,\n\t\t\t\t\t     struct lxc_handler *handler,\n\t\t\t\t\t     struct lxc_async_descr
      *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/commands.c:1462,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/commands.c:1462,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:1463,1
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1465,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1466,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1468,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:1470,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:1473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - name
    - lxcpath
    - device
    argTypes:
    - char*
    - char*
    - struct device_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1455
    functionDepth: 7
    functionLinenumber: 1455
    functionLinenumberEnd: 1476
    functionName: lxc_cmd_add_bpf_device_cgroup
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - STRLITERALLEN
    - lxc_cmd_data
    - lxc_cmd_init
    - strlen
    - lxc_cmd
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_add_bpf_device_cgroup(const char *name, const char *lxcpath,\n\t\t\t\t
      \ struct device_item *device)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bpf_cgroup_devices_update
      Src: /src/lxc/src/lxc/commands.c:1497,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1505,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1506
    functionName: lxc_cmd_add_bpf_device_cgroup_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - bpf_cgroup_devices_update
    - lxc_cmd_rsp_send_reap
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_add_bpf_device_cgroup_callback(int fd, struct lxc_cmd_req
      *req,\n\t\t\t\t\t\t  struct lxc_handler *handler,\n\t\t\t\t\t\t  struct lxc_async_descr
      *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1520,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1521,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - name
    - lxcpath
    - log
    argTypes:
    - char*
    - char*
    - struct lxc_console_log*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1508
    functionDepth: 7
    functionLinenumber: 1508
    functionLinenumberEnd: 1543
    functionName: lxc_cmd_console_log
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_data
    - lxc_cmd_init
    - lxc_cmd
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_console_log(const char *name, const char *lxcpath,\n\t\t\tstruct
      lxc_console_log *log)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_ringbuf_used
      Src: /src/lxc/src/lxc/commands.c:1561,1
    - Dst: lxc_ringbuf_get_read_addr
      Src: /src/lxc/src/lxc/commands.c:1564,1
    - Dst: lxc_ringbuf_clear
      Src: /src/lxc/src/lxc/commands.c:1576,1
    - Dst: lxc_ringbuf_move_read_addr
      Src: /src/lxc/src/lxc/commands.c:1578,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1581,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1545
    functionDepth: 3
    functionLinenumber: 1545
    functionLinenumberEnd: 1582
    functionName: lxc_cmd_console_log_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - lxc_ringbuf_used
    - lxc_ringbuf_clear
    - lxc_ringbuf_get_read_addr
    - lxc_ringbuf_move_read_addr
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_console_log_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\tstruct
      lxc_handler *handler,\n\t\t\t\t\tstruct lxc_async_descr *descr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1591,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1592,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1592,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1594,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - name
    - lxcpath
    - state
    argTypes:
    - char*
    - char*
    - lxc_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1584
    functionDepth: 7
    functionLinenumber: 1584
    functionLinenumberEnd: 1599
    functionName: lxc_cmd_serve_state_clients
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_data
    - lxc_cmd_init
    - lxc_cmd
    - INT_TO_PTR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_serve_state_clients(const char *name, const char *lxcpath,\n\t\t\t\tlxc_state_t
      state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1606,1
    - Dst: lxc_serve_state_clients
      Src: /src/lxc/src/lxc/commands.c:1609,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1601
    functionDepth: 4
    functionLinenumber: 1601
    functionLinenumberEnd: 1614
    functionName: lxc_cmd_serve_state_clients_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - PTR_TO_INT
    - lxc_serve_state_clients
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_serve_state_clients_callback(int fd, struct lxc_cmd_req
      *req,\n\t\t\t\t\t\tstruct lxc_handler *handler,\n\t\t\t\t\t\tstruct lxc_async_descr
      *descr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1627,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1628,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1628,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1630,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:1632,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/commands.c:1636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - name
    - lxcpath
    - fd
    - command
    - flags
    argTypes:
    - char*
    - char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1616
    functionDepth: 7
    functionLinenumber: 1616
    functionLinenumberEnd: 1638
    functionName: lxc_cmd_seccomp_notify_add_listener
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_data
    - lxc_cmd_init
    - ret_set_errno
    - lxc_cmd
    - INT_TO_PTR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_seccomp_notify_add_listener(const char *name, const char
      *lxcpath,\n\t\t\t\t\tint fd,\n\t\t\t\t\t/* unused */ unsigned int command,\n\t\t\t\t\t/*
      unused */ unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_recv_one_fd
      Src: /src/lxc/src/lxc/commands.c:1651,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/commands.c:1659,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/commands.c:1664,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:1672,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1679,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1640
    functionDepth: 4
    functionLinenumber: 1640
    functionLinenumberEnd: 1680
    functionName: lxc_cmd_seccomp_notify_add_listener_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - SYSERROR
    - lxc_mainloop_add_handler
    - lxc_abstract_unix_recv_one_fd
    - move_fd
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_seccomp_notify_add_listener_callback(int fd,\n\t\t\t\t\t\t\tstruct
      lxc_cmd_req *req,\n\t\t\t\t\t\t\tstruct lxc_handler *handler,\n\t\t\t\t\t\t\tstruct
      lxc_async_descr *descr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1688,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1689,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1689,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1691,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:1693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - name
    - lxcpath
    - timeout
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1682
    functionDepth: 7
    functionLinenumber: 1682
    functionLinenumberEnd: 1696
    functionName: lxc_cmd_freeze
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_data
    - lxc_cmd_init
    - lxc_cmd
    - INT_TO_PTR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_freeze(const char *name, const char *lxcpath, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1702,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/commands.c:1708,1
    - Dst: struct cgroup_ops*::freeze
      Src: /src/lxc/src/lxc/commands.c:1709,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1698
    functionDepth: 3
    functionLinenumber: 1698
    functionLinenumberEnd: 1712
    functionName: lxc_cmd_freeze_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - struct cgroup_ops*::freeze
    - pure_unified_layout
    - PTR_TO_INT
    - lxc_cmd_rsp_send_reap
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_freeze_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t
      \  struct lxc_handler *handler,\n\t\t\t\t   struct lxc_async_descr *descr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1720,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1721,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/commands.c:1721,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1723,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:1725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - name
    - lxcpath
    - timeout
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1714
    functionDepth: 7
    functionLinenumber: 1714
    functionLinenumberEnd: 1728
    functionName: lxc_cmd_unfreeze
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_data
    - lxc_cmd_init
    - lxc_cmd
    - INT_TO_PTR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_unfreeze(const char *name, const char *lxcpath, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1734,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/commands.c:1740,1
    - Dst: struct cgroup_ops*::unfreeze
      Src: /src/lxc/src/lxc/commands.c:1741,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1730
    functionDepth: 3
    functionLinenumber: 1730
    functionLinenumberEnd: 1744
    functionName: lxc_cmd_unfreeze_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - pure_unified_layout
    - PTR_TO_INT
    - struct cgroup_ops*::unfreeze
    - lxc_cmd_rsp_send_reap
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_unfreeze_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t
      \  struct lxc_handler *handler,\n\t\t\t\t   struct lxc_async_descr *descr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1753,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1754,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1756,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:1758,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1759,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:1762,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - name
    - lxcpath
    - size_ret_fd
    - ret_fd
    argTypes:
    - char*
    - char*
    - size_t
    - struct cgroup_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1746
    functionDepth: 7
    functionLinenumber: 1746
    functionLinenumberEnd: 1766
    functionName: lxc_cmd_get_cgroup_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_data
    - lxc_cmd_init
    - lxc_cmd
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_cgroup_fd(const char *name, const char *lxcpath,\n\t\t\t
      \ size_t size_ret_fd, struct cgroup_fd *ret_fd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1775,1
    - Dst: lxc_cmd_data
      Src: /src/lxc/src/lxc/commands.c:1776,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1778,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:1780,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1781,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:1784,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - name
    - lxcpath
    - size_ret_fd
    - ret_fd
    argTypes:
    - char*
    - char*
    - size_t
    - struct cgroup_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1768
    functionDepth: 7
    functionLinenumber: 1768
    functionLinenumberEnd: 1788
    functionName: lxc_cmd_get_limit_cgroup_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_data
    - lxc_cmd_init
    - lxc_cmd
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_limit_cgroup_fd(const char *name, const char *lxcpath,\n\t\t\t\tsize_t
      size_ret_fd, struct cgroup_fd *ret_fd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: copy_struct_from_client
      Src: /src/lxc/src/lxc/commands.c:1802,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1805,1
    - Dst: strnlen
      Src: /src/lxc/src/lxc/commands.c:1807,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1808,1
    - Dst: prepare_cgroup_fd
      Src: /src/lxc/src/lxc/commands.c:1810,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1813,1
    - Dst: min
      Src: /src/lxc/src/lxc/commands.c:1818,1
    - Dst: rsp_one_fd_reap
      Src: /src/lxc/src/lxc/commands.c:1819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - fd
    - req
    - handler
    - descr
    - limit
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1790
    functionDepth: 4
    functionLinenumber: 1790
    functionLinenumberEnd: 1820
    functionName: __lxc_cmd_get_cgroup_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - copy_struct_from_client
    - lxc_cmd_rsp_send_reap
    - prepare_cgroup_fd
    - min
    - strnlen
    - rsp_one_fd_reap
    linkageType: ''
    returnType: int
    signature: "int __lxc_cmd_get_cgroup_fd_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \   struct lxc_handler *handler,\n\t\t\t\t\t    struct lxc_async_descr *descr,\n\t\t\t\t\t
      \   bool limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_get_cgroup_fd_callback
      Src: /src/lxc/src/lxc/commands.c:1826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1822
    functionDepth: 5
    functionLinenumber: 1822
    functionLinenumberEnd: 1827
    functionName: lxc_cmd_get_cgroup_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - __lxc_cmd_get_cgroup_fd_callback
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_cgroup_fd_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \ struct lxc_handler *handler,\n\t\t\t\t\t  struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_get_cgroup_fd_callback
      Src: /src/lxc/src/lxc/commands.c:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1829
    functionDepth: 5
    functionLinenumber: 1829
    functionLinenumberEnd: 1834
    functionName: lxc_cmd_get_limit_cgroup_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - __lxc_cmd_get_cgroup_fd_callback
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_limit_cgroup_fd_callback(int fd, struct lxc_cmd_req
      *req,\n\t\t\t\t\t\tstruct lxc_handler *handler,\n\t\t\t\t\t\tstruct lxc_async_descr
      *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1843,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1845,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:1847,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1848,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:1851,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1852,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1854,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:1856,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1836
    functionDepth: 7
    functionLinenumber: 1836
    functionLinenumberEnd: 1859
    functionName: lxc_cmd_get_cgroup2_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_init
    - lxc_cmd
    - PTR_TO_INT
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_cgroup2_fd(const char *name, const char *lxcpath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_init
      Src: /src/lxc/src/lxc/commands.c:1868,1
    - Dst: lxc_cmd
      Src: /src/lxc/src/lxc/commands.c:1870,1
    - Dst: sysdebug
      Src: /src/lxc/src/lxc/commands.c:1872,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1873,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:1876,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1877,1
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/commands.c:1879,1
    - Dst: sysdebug_set
      Src: /src/lxc/src/lxc/commands.c:1881,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1861
    functionDepth: 7
    functionLinenumber: 1861
    functionLinenumberEnd: 1884
    functionName: lxc_cmd_get_limit_cgroup2_fd
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_str
    - lxc_cmd_init
    - lxc_cmd
    - PTR_TO_INT
    - sysdebug_set
    - sysdebug
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_get_limit_cgroup2_fd(const char *name, const char *lxcpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/commands.c:1897,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1898,1
    - Dst: lxc_cmd_rsp_send_reap
      Src: /src/lxc/src/lxc/commands.c:1905,1
    - Dst: rsp_one_fd_reap
      Src: /src/lxc/src/lxc/commands.c:1909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - fd
    - req
    - handler
    - descr
    - limiting_cgroup
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1886
    functionDepth: 4
    functionLinenumber: 1886
    functionLinenumberEnd: 1910
    functionName: __lxc_cmd_get_cgroup2_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_reap
    - pure_unified_layout
    - rsp_one_fd_reap
    linkageType: ''
    returnType: int
    signature: "int __lxc_cmd_get_cgroup2_fd_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \    struct lxc_handler *handler,\n\t\t\t\t\t     struct lxc_async_descr *descr,\n\t\t\t\t\t
      \    bool limiting_cgroup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_get_cgroup2_fd_callback
      Src: /src/lxc/src/lxc/commands.c:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1912
    functionDepth: 5
    functionLinenumber: 1912
    functionLinenumberEnd: 1917
    functionName: lxc_cmd_get_cgroup2_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - __lxc_cmd_get_cgroup2_fd_callback
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_cgroup2_fd_callback(int fd, struct lxc_cmd_req *req,\n\t\t\t\t\t
      \  struct lxc_handler *handler,\n\t\t\t\t\t   struct lxc_async_descr *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_get_cgroup2_fd_callback
      Src: /src/lxc/src/lxc/commands.c:1923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1919
    functionDepth: 5
    functionLinenumber: 1919
    functionLinenumberEnd: 1924
    functionName: lxc_cmd_get_limit_cgroup2_fd_callback
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - __lxc_cmd_get_cgroup2_fd_callback
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_get_limit_cgroup2_fd_callback(int fd, struct lxc_cmd_req
      *req,\n\t\t\t\t\t\t struct lxc_handler *handler,\n\t\t\t\t\t\t struct lxc_async_descr
      *descr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __lxc_cmd_rsp_send
      Src: /src/lxc/src/lxc/commands.c:1932,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/commands.c:1933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fd
    - id
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1926
    functionDepth: 2
    functionLinenumber: 1926
    functionLinenumberEnd: 1934
    functionName: lxc_cmd_rsp_send_enosys
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - __lxc_cmd_rsp_send
    - syserror_set
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_rsp_send_enosys(int fd, int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_cmd_rsp_send_enosys
      Src: /src/lxc/src/lxc/commands.c:1974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - fd
    - req
    - handler
    - descr
    argTypes:
    - int
    - struct lxc_cmd_req*
    - struct lxc_handler*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1936
    functionDepth: 3
    functionLinenumber: 1936
    functionLinenumberEnd: 1977
    functionName: lxc_cmd_process
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_rsp_send_enosys
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_process(int fd, struct lxc_cmd_req *req,\n\t\t\t   struct
      lxc_handler *handler,\n\t\t\t   struct lxc_async_descr *descr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/commands.c:1985,1
    - Dst: list_del
      Src: /src/lxc/src/lxc/commands.c:1989,1
    - Dst: free
      Src: /src/lxc/src/lxc/commands.c:1990,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:1996,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:1996,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:2006,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - handler
    - cmd
    argTypes:
    - int
    - struct lxc_handler*
    - lxc_cmd_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1979
    functionDepth: 3
    functionLinenumber: 1979
    functionLinenumberEnd: 2014
    functionName: lxc_cmd_fd_cleanup
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - list_del
    - lxc_cmd_str
    - list_for_each_entry_safe
    - free
    - TRACE
    linkageType: ''
    returnType: void
    signature: "void lxc_cmd_fd_cleanup(int fd, struct lxc_handler *handler,\n\t\t\t
      \      const lxc_cmd_t cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_terminal_free
      Src: /src/lxc/src/lxc/commands.c:2020,1
    - Dst: close
      Src: /src/lxc/src/lxc/commands.c:2021,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:2022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2016
    functionDepth: 4
    functionLinenumber: 2016
    functionLinenumberEnd: 2025
    functionName: lxc_cmd_cleanup_handler
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - TRACE
    - lxc_terminal_free
    - close
    linkageType: ''
    returnType: int
    signature: int lxc_cmd_cleanup_handler(int fd, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_rcv_credential
      Src: /src/lxc/src/lxc/commands.c:2035,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/commands.c:2037,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2037,1
    - Dst: __lxc_cmd_rsp_send
      Src: /src/lxc/src/lxc/commands.c:2045,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/commands.c:2055,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2055,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/commands.c:2060,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2060,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/commands.c:2065,1
    - Dst: lxc_recv_nointr
      Src: /src/lxc/src/lxc/commands.c:2066,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/commands.c:2068,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2068,1
    - Dst: lxc_cmd_process
      Src: /src/lxc/src/lxc/commands.c:2075,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/commands.c:2077,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2077,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:2082,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2082,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:2086,1
    - Dst: lxc_cmd_str
      Src: /src/lxc/src/lxc/commands.c:2086,1
    - Dst: lxc_cmd_fd_cleanup
      Src: /src/lxc/src/lxc/commands.c:2090,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2027
    functionDepth: 4
    functionLinenumber: 2027
    functionLinenumberEnd: 2092
    functionName: lxc_cmd_handler
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - WARN
    - lxc_cmd_process
    - __lxc_cmd_rsp_send
    - lxc_cmd_str
    - SYSERROR
    - lxc_cmd_fd_cleanup
    - TRACE
    - DEBUG
    - ERROR
    - lxc_abstract_unix_rcv_credential
    - lxc_recv_nointr
    - must_realloc
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_handler(int fd, uint32_t events, void *data,\n\t\t\t   struct
      lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: accept4
      Src: /src/lxc/src/lxc/commands.c:2100,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:2102,1
    - Dst: setsockopt
      Src: /src/lxc/src/lxc/commands.c:2104,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:2106,1
    - Dst: lxc_mainloop_add_oneshot_handler
      Src: /src/lxc/src/lxc/commands.c:2108,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/commands.c:2113,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/commands.c:2115,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:2116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2094
    functionDepth: 4
    functionLinenumber: 2094
    functionLinenumberEnd: 2118
    functionName: lxc_cmd_accept
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 0
    functionsReached:
    - log_error
    - setsockopt
    - accept4
    - TRACE
    - lxc_mainloop_add_oneshot_handler
    - move_fd
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_accept(int fd, uint32_t events, void *data,\n\t\t\t  struct
      lxc_async_descr *descr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_make_abstract_socket_name
      Src: /src/lxc/src/lxc/commands.c:2126,1
    - Dst: lxc_abstract_unix_open
      Src: /src/lxc/src/lxc/commands.c:2130,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/commands.c:2133,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/commands.c:2135,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/commands.c:2138,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/commands.c:2138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - name
    - lxcpath
    - suffix
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2120
    functionDepth: 3
    functionLinenumber: 2120
    functionLinenumberEnd: 2139
    functionName: lxc_server_init
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - lxc_make_abstract_socket_name
    - log_trace
    - move_fd
    - lxc_abstract_unix_open
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int lxc_server_init(const char *name, const char *lxcpath, const char
      *suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/commands.c:2146,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/commands.c:2151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - descr
    - handler
    argTypes:
    - char*
    - struct lxc_async_descr*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2141
    functionDepth: 4
    functionLinenumber: 2141
    functionLinenumberEnd: 2154
    functionName: lxc_cmd_mainloop_add
    functionSourceFile: /src/lxc/src/lxc/commands.c
    functionUses: 1
    functionsReached:
    - log_error
    - lxc_mainloop_add_handler
    linkageType: ''
    returnType: int
    signature: "int lxc_cmd_mainloop_add(const char *name, struct lxc_async_descr
      *descr,\n\t\t\t struct lxc_handler *handler)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_fssize
      Src: /src/lxc/src/lxc/tools/lxc_create.c:120,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 139
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_create.c
    functionUses: 0
    functionsReached:
    - get_fssize
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/lxc/tools/lxc_create.c:149,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/tools/lxc_create.c:151,1
    - Dst: get_template_path
      Src: /src/lxc/src/lxc/tools/lxc_create.c:155,1
    - Dst: execv
      Src: /src/lxc/src/lxc/tools/lxc_create.c:161,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:162,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: create_helpfn
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_create.c
    functionUses: 0
    functionsReached:
    - get_template_path
    - _exit
    - execv
    - wait_for_pid
    - fork
    - ERROR
    linkageType: ''
    returnType: void
    signature: void create_helpfn(const struct lxc_arguments *args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:168,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:168,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:170,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:170,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:171,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:171,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:172,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:172,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:173,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:177,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:177,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:179,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:183,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:183,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:185,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:189,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:189,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 197
    functionName: validate_bdev_args
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_create.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strlen
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool validate_bdev_args(struct lxc_arguments *args)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_create.c:207,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:208,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_create.c:217,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:218,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:221,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:222,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:223,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:227,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:228,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:231,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:231,1
    - Dst: validate_bdev_args
      Src: /src/lxc/src/lxc/tools/lxc_create.c:237,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:238,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:240,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:240,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:244,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:244,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:245,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:245,1
    - Dst: lxc_is_valid_storage_type
      Src: /src/lxc/src/lxc/tools/lxc_create.c:246,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:247,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:248,1
    - Dst: lxc_get_global_config_item
      Src: /src/lxc/src/lxc/tools/lxc_create.c:252,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/tools/lxc_create.c:254,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:255,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/tools/lxc_create.c:257,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_create.c:258,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:259,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:260,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_create.c:263,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:265,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:266,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/lxc/tools/lxc_create.c:269,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_create.c:270,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:271,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:272,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_create.c:276,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_create.c:278,1
    - Dst: lxc_get_global_config_item
      Src: /src/lxc/src/lxc/tools/lxc_create.c:278,1
    - Dst: memset
      Src: /src/lxc/src/lxc/tools/lxc_create.c:280,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:288,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:288,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:289,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:289,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:293,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:293,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:294,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:294,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:305,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:305,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:306,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:306,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_create.c:320,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_create.c:320,1
    - Dst: struct lxc_container*::create
      Src: /src/lxc/src/lxc/tools/lxc_create.c:326,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_create.c:327,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_create.c:328,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:329,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_create.c:332,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_create.c:333,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 91
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 200
    functionDepth: 6
    functionLinenumber: 200
    functionLinenumberEnd: 334
    functionName: lxc_create_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_create.c
    functionUses: 0
    functionsReached:
    - memset
    - struct lxc_container*::create
    - strncmp
    - lxc_is_valid_storage_type
    - strlen
    - exit
    - lxc_get_global_config_item
    - lxc_mkdir_p
    - access
    - lxc_container_new
    - geteuid
    - struct lxc_container*::is_defined
    - lxc_container_put
    - lxc_arguments_parse
    - validate_bdev_args
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    linkageType: ''
    returnType: int
    signature: int lxc_create_main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/tools/lxc_console.c:61,1
    - Dst: etoc
      Src: /src/lxc/src/lxc/tools/lxc_console.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_console.c
    functionUses: 0
    functionsReached:
    - etoc
    - lxc_safe_uint
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: etoc
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_console.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char etoc(const char *expr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_console.c:87,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:88,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_console.c:97,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:98,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_console.c:100,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_console.c:102,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:103,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_console.c:107,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_console.c:109,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_console.c:110,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_console.c:111,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:112,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_console.c:115,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_console.c:117,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_console.c:118,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:119,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_console.c:123,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_console.c:124,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_console.c:125,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:126,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_console.c:129,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_console.c:130,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_console.c:131,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:132,1
    - Dst: struct lxc_container*::console
      Src: /src/lxc/src/lxc/tools/lxc_console.c:135,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_console.c:137,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:138,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_console.c:141,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_console.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 143
    functionName: lxc_console_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_console.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::console
    - struct lxc_container*::clear_config
    - exit
    - struct lxc_container*::is_running
    - lxc_container_new
    - lxc_container_put
    - strdup
    - lxc_arguments_parse
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_console_main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - arg
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: lxc_info
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_info(arg, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - arg
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: lxc_error
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_error(arg, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - arg
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: lxc_sys_error
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lxc_sys_error(arg, fmt, args...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:69,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:73,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:79,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:79,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:81,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:81,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:82,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:88,1
    - Dst: main
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:89,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:92,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:95,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:102,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:104,1
    - Dst: putc
      Src: /src/lxc/src/lxc/tools/lxc_multicall.c:106,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 108
    functionName: main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_multicall.c
    functionUses: 1
    functionsReached:
    - strcmp
    - main
    - strncmp
    - fprintf
    - strrchr
    - strlen
    - putc
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_monitor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fds
    - nfds
    argTypes:
    - struct pollfd*
    - nfds_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: close_fds
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_monitor.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_fds(struct pollfd *fds, nfds_t nfds)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:95,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:97,1
    - Dst: dirfd
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:101,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:103,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:104,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:107,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:110,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:124,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:125,1
    - Dst: closedir
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:130,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 32
    argCount: 3
    argNames:
    - closeall
    - fds_to_ignore
    - len_fds
    argTypes:
    - bool
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 132
    functionName: lxc_tool_check_inherited
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_monitor.c
    functionUses: 0
    functionsReached:
    - dirfd
    - opendir
    - readdir
    - strcmp
    - lxc_safe_int
    - close
    - SYSERROR
    - closedir
    linkageType: ''
    returnType: int
    signature: int lxc_tool_check_inherited(bool closeall, int *fds_to_ignore, size_t
      len_fds)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:141,1
    - Dst: fork
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:152,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:154,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:159,1
    - Dst: pipe
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:165,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:166,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:167,1
    - Dst: fork
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:170,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:172,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:173,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:180,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:187,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:191,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:193,1
    - Dst: setsid
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:196,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:197,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:198,1
    - Dst: lxc_tool_check_inherited
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:201,1
    - Dst: null_stdfds
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:202,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:203,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:204,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:207,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:209,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:211,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:212,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:215,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:216,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:218,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - lxcpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 219
    functionName: lxc_tool_monitord_spawn
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_monitor.c
    functionUses: 0
    functionsReached:
    - setsid
    - waitpid
    - pipe
    - INTTYPE_TO_STRLEN
    - close
    - lxc_tool_check_inherited
    - SYSERROR
    - snprintf
    - _exit
    - lxc_read_nointr
    - null_stdfds
    - execvp
    - fork
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lxc_tool_monitord_spawn(const char *lxcpath)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:234,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:235,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:246,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:247,1
    - Dst: lxc_monitor_open
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:256,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:258,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:263,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:264,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:266,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:270,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:273,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:276,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:277,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:279,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:280,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:283,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:285,1
    - Dst: regcomp
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:289,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:290,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:294,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:296,1
    - Dst: lxc_tool_monitord_spawn
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:305,1
    - Dst: lxc_monitor_open
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:307,1
    - Dst: close_fds
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:309,1
    - Dst: setlinebuf
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:318,1
    - Dst: lxc_monitor_read_fdset
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:321,1
    - Dst: regexec
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:325,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:330,1
    - Dst: lxc_state2str
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:331,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:334,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:335,1
    - Dst: close_fds
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:346,1
    - Dst: regfree
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:349,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:350,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:353,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_monitor.c:355,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 99
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 356
    functionName: lxc_monitor_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_monitor.c
    functionUses: 0
    functionsReached:
    - close
    - close_fds
    - lxc_state2str
    - regfree
    - exit
    - lxc_arguments_parse
    - lxc_log_init
    - free
    - strlen
    - snprintf
    - setlinebuf
    - SYSERROR
    - WEXITSTATUS
    - lxc_write_nointr
    - regexec
    - printf
    - lxc_monitor_read_fdset
    - regcomp
    - ERROR
    - lxc_monitor_open
    - lxc_tool_monitord_spawn
    - malloc
    linkageType: ''
    returnType: int
    signature: int lxc_monitor_main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_destroy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:71,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:75,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:76,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:80,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:84,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:85,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:89,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:91,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:96,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:101,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:104,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:105,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:106,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 115
    functionName: do_destroy
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_destroy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - struct lxc_container*::get_config_item
    - struct lxc_container*::is_defined
    - file_exists
    - struct lxc_container*::is_running
    - snprintf
    - rmdir
    - struct lxc_container*::destroy
    - ERROR
    - struct lxc_container*::stop
    linkageType: ''
    returnType: bool
    signature: bool do_destroy(struct lxc_container *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:131,1
    - Dst: open
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:135,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:137,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:139,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:144,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:146,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:147,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:151,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:152,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:154,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:155,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:159,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:160,1
    - Dst: do_destroy
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:167,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:168,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:169,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:173,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:175,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:179,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:183,1
    - Dst: struct lxc_container*::destroy_with_snapshots
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:184,1
    - Dst: do_destroy
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:186,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 117
    functionDepth: 6
    functionLinenumber: 117
    functionLinenumberEnd: 189
    functionName: do_destroy_with_snapshots
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_destroy.c
    functionUses: 0
    functionsReached:
    - do_destroy
    - struct lxc_container*::destroy_with_snapshots
    - close
    - free
    - snprintf
    - lxc_container_new
    - calloc
    - lxc_container_put
    - rmdir
    - fstat
    - lxc_read_nointr
    - lxc_iterate_parts
    - ERROR
    - open
    linkageType: ''
    returnType: bool
    signature: bool do_destroy_with_snapshots(struct lxc_container *c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:198,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:199,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:208,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:209,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:211,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:213,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:214,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:218,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:220,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:221,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:222,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:223,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:226,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:228,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:229,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:230,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:234,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:235,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:236,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:237,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:240,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:241,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:242,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:243,1
    - Dst: do_destroy_with_snapshots
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:247,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:249,1
    - Dst: do_destroy
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:251,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:253,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:256,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:259,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_destroy.c:261,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 192
    functionDepth: 7
    functionLinenumber: 192
    functionLinenumberEnd: 262
    functionName: lxc_destroy_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_destroy.c
    functionUses: 0
    functionsReached:
    - do_destroy
    - do_destroy_with_snapshots
    - struct lxc_container*::clear_config
    - struct lxc_container*::is_defined
    - exit
    - lxc_container_new
    - lxc_container_put
    - strdup
    - INFO
    - lxc_arguments_parse
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_destroy_main(int argc, char *argv[])
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_namespace_flags
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:98,1
    - Dst: lookup_user
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:103,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:112,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:114,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:115,1
    - Dst: lxc_list_add_elem
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:119,1
    - Dst: lxc_list_add_tail
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 130
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - free_ifname_list
    - lxc_list_add_tail
    - lxc_list_add_elem
    - lookup_user
    - get_namespace_flags
    - malloc
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_namespace_2_std_identifiers
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:136,1
    - Dst: lxc_fill_namespace_flags
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - namespaces
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: get_namespace_flags
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 1
    functionsReached:
    - lxc_namespace_2_std_identifiers
    - lxc_fill_namespace_flags
    linkageType: ''
    returnType: int
    signature: int get_namespace_flags(char *namespaces)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:156,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:160,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:164,1
    - Dst: getpwnam_r
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:166,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:169,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:171,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:172,1
    - Dst: getpwuid_r
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:178,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:181,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:183,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:184,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - oparg
    - uid
    argTypes:
    - char*
    - uid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 191
    functionName: lookup_user
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 1
    functionsReached:
    - free
    - getpwuid_r
    - SYSERROR
    - sysconf
    - getpwnam_r
    - sscanf
    - malloc
    linkageType: ''
    returnType: bool
    signature: bool lookup_user(const char *oparg, uid_t *uid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: umount
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:196,1
    - Dst: mount
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - source
    - target
    - type
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: mount_fs
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 0
    functionsReached:
    - umount
    - mount
    linkageType: ''
    returnType: int
    signature: int mount_fs(const char *source, const char *target, const char *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mount_fs
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:206,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:209,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:210,1
    - Dst: mount_fs
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:213,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:217,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:218,1
    - Dst: mount_fs
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: lxc_setup_fs
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 0
    functionsReached:
    - mount_fs
    - access
    - mkdir
    linkageType: ''
    returnType: void
    signature: void lxc_setup_fs(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:234,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:236,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:237,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:238,1
    - Dst: mount
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:243,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:244,1
    - Dst: lxc_setup_fs
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:247,1
    - Dst: sethostname
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:251,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:251,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:252,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:253,1
    - Dst: setuid
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:257,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:258,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:259,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:262,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:264,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 266
    functionName: do_start
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 1
    functionsReached:
    - sethostname
    - close
    - SYSERROR
    - strlen
    - _exit
    - lxc_read_nointr
    - lxc_setup_fs
    - execvp
    - setuid
    - mount
    linkageType: ''
    returnType: int
    signature: int do_start(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_for_each_safe
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:272,1
    - Dst: lxc_list_del
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:273,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: free_ifname_list
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 1
    functionsReached:
    - lxc_list_del
    - free
    - lxc_list_for_each_safe
    linkageType: ''
    returnType: void
    signature: void free_ifname_list(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_init
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:286,1
    - Dst: lxc_caps_init
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:288,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:289,1
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:291,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:292,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:301,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:302,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:303,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:307,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:308,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:309,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:313,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:314,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:315,1
    - Dst: lxc_list_len
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:318,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:319,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:320,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:321,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:325,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:326,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:327,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:331,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:332,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:333,1
    - Dst: eventfd
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:337,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:339,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:340,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:341,1
    - Dst: lxc_clone
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:353,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:355,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:356,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:357,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:368,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:368,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:370,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:371,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:372,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:373,1
    - Dst: write_id_mapping
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:376,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:376,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:378,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:379,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:380,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:381,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:384,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:386,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:387,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:388,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:389,1
    - Dst: lxc_list_len
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:393,1
    - Dst: lxc_list_for_each
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:398,1
    - Dst: fork
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:403,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:405,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:413,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:415,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:417,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:418,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:421,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:422,1
    - Dst: free_ifname_list
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:425,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:429,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:431,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:432,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:433,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unshare.c:437,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 113
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 438
    functionName: lxc_unshare_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unshare.c
    functionUses: 0
    functionsReached:
    - lxc_clone
    - close
    - exit
    - write_id_mapping
    - lxc_arguments_parse
    - wait_for_pid
    - eventfd
    - lxc_log_init
    - lxc_list_len
    - lxc_list_for_each
    - strlen
    - snprintf
    - free_ifname_list
    - SYSERROR
    - lxc_list_init
    - execlp
    - lxc_write_nointr
    - lxc_caps_init
    - getuid
    - _exit
    - fork
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lxc_unshare_main(int argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/tools/lxc_info.c:37,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_info.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: str_chomp
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void str_chomp(char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:102,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:107,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:111,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - val
    - buf
    - bufsz
    argTypes:
    - unsigned long long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: size_humanize
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void size_humanize(unsigned long long val, char *buf, size_t bufsz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_info.c:123,1
    - Dst: size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_info.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - iobuf
    - iobufsz
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: str_size_humanize
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - strtoull
    - size_humanize
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long str_size_humanize(char *iobuf, size_t iobufsz)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:142,1
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/tools/lxc_info.c:144,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_info.c:148,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:149,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:151,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_info.c:153,1
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/tools/lxc_info.c:155,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:159,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:160,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:165,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/tools/lxc_info.c:169,1
    - Dst: str_chomp
      Src: /src/lxc/src/lxc/tools/lxc_info.c:172,1
    - Dst: str_size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_info.c:173,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:174,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:175,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:178,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/tools/lxc_info.c:182,1
    - Dst: str_chomp
      Src: /src/lxc/src/lxc/tools/lxc_info.c:185,1
    - Dst: str_size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_info.c:186,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:187,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:188,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:191,1
    - Dst: str_size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_info.c:192,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:193,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:194,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_info.c:195,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 197
    functionName: print_net_stats
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - strcmp
    - printf
    - str_chomp
    - struct lxc_container*::get_running_config_item
    - free
    - lxc_read_from_file
    - fflush
    - str_size_humanize
    - snprintf
    - sprintf
    linkageType: ''
    returnType: void
    signature: void print_net_stats(struct lxc_container *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_info.c:204,1
    - Dst: str_chomp
      Src: /src/lxc/src/lxc/tools/lxc_info.c:206,1
    - Dst: strtof
      Src: /src/lxc/src/lxc/tools/lxc_info.c:208,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:209,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:211,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:213,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_info.c:216,1
    - Dst: str_chomp
      Src: /src/lxc/src/lxc/tools/lxc_info.c:221,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_info.c:222,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_info.c:227,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/tools/lxc_info.c:229,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_info.c:229,1
    - Dst: str_size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_info.c:230,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:231,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:233,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_info.c:246,1
    - Dst: str_chomp
      Src: /src/lxc/src/lxc/tools/lxc_info.c:248,1
    - Dst: str_size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_info.c:249,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:250,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 254
    functionName: print_stats
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - printf
    - str_chomp
    - strncmp
    - strtof
    - fflush
    - strlen
    - str_size_humanize
    - struct lxc_container*::get_cgroup_item
    - memmove
    linkageType: ''
    returnType: void
    signature: void print_stats(struct lxc_container *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:259,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:262,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:264,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - k
    - value
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 267
    functionName: print_info_msg_int
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - printf
    - fflush
    linkageType: ''
    returnType: void
    signature: void print_info_msg_int(const char *k, int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:272,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:275,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:277,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - k
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: print_info_msg_str
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - printf
    - fflush
    linkageType: ''
    returnType: void
    signature: void print_info_msg_str(const char *k, const char *value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_info.c:287,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:289,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_info.c:295,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_info.c:297,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:298,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_info.c:299,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_info.c:303,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:305,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_info.c:306,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_info.c:311,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:312,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_info.c:313,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_info.c:317,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/lxc/tools/lxc_info.c:317,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:318,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_info.c:319,1
    - Dst: print_info_msg_str
      Src: /src/lxc/src/lxc/tools/lxc_info.c:325,1
    - Dst: print_info_msg_str
      Src: /src/lxc/src/lxc/tools/lxc_info.c:329,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/lxc/tools/lxc_info.c:329,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_info.c:331,1
    - Dst: struct lxc_container*::init_pid
      Src: /src/lxc/src/lxc/tools/lxc_info.c:335,1
    - Dst: print_info_msg_int
      Src: /src/lxc/src/lxc/tools/lxc_info.c:337,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:341,1
    - Dst: struct lxc_container*::get_ips
      Src: /src/lxc/src/lxc/tools/lxc_info.c:343,1
    - Dst: print_info_msg_str
      Src: /src/lxc/src/lxc/tools/lxc_info.c:350,1
    - Dst: print_stats
      Src: /src/lxc/src/lxc/tools/lxc_info.c:358,1
    - Dst: print_net_stats
      Src: /src/lxc/src/lxc/tools/lxc_info.c:359,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_info.c:363,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_info.c:366,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_info.c:368,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:369,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:372,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:374,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_info.c:377,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:380,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:382,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_info.c:384,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_info.c:386,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_info.c:389,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 2
    argNames:
    - name
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 282
    functionDepth: 6
    functionLinenumber: 282
    functionLinenumberEnd: 391
    functionName: print_info
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - fprintf
    - print_info_msg_int
    - lxc_container_new
    - struct lxc_container*::get_ips
    - print_stats
    - free
    - fflush
    - malloc
    - print_net_stats
    - struct lxc_container*::is_defined
    - struct lxc_container*::load_config
    - print_info_msg_str
    - struct lxc_container*::may_control
    - printf
    - struct lxc_container*::get_config_item
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::init_pid
    - strdup
    - struct lxc_container*::state
    linkageType: ''
    returnType: int
    signature: int print_info(const char *name, const char *lxcpath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_info.c:399,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_info.c:400,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_info.c:411,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_info.c:412,1
    - Dst: print_info
      Src: /src/lxc/src/lxc/tools/lxc_info.c:415,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_info.c:418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 394
    functionDepth: 7
    functionLinenumber: 394
    functionLinenumberEnd: 419
    functionName: lxc_info_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_info.c
    functionUses: 0
    functionsReached:
    - lxc_log_init
    - exit
    - lxc_arguments_parse
    - print_info
    linkageType: ''
    returnType: int
    signature: int lxc_info_main(int argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_safe_long
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:68,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 82
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_stop.c
    functionUses: 0
    functionsReached:
    - lxc_safe_long
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:92,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:93,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:102,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:103,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:118,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:119,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:123,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:124,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:128,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:129,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:133,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:134,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:138,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:139,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:142,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:144,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:149,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:151,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:152,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:156,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:158,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:163,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:164,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:168,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:169,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:180,1
    - Dst: struct lxc_container*::reboot2
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:186,1
    - Dst: struct lxc_container*::shutdown
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:195,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:202,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:208,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_stop.c:209,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 95
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 210
    functionName: lxc_stop_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_stop.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::reboot2
    - struct lxc_container*::clear_config
    - struct lxc_container*::shutdown
    - exit
    - struct lxc_container*::is_running
    - lxc_container_new
    - strdup
    - lxc_container_put
    - struct lxc_container*::stop
    - lxc_arguments_parse
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_stop_main(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/lxc/tools/lxc_device.c:46,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:48,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:49,1
    - Dst: switch_to_ns
      Src: /src/lxc/src/lxc/tools/lxc_device.c:55,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:56,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:57,1
    - Dst: netns_getifaddrs
      Src: /src/lxc/src/lxc/tools/lxc_device.c:61,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:62,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:63,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_device.c:68,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_device.c:68,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:69,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:72,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/tools/lxc_device.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - dev_name
    - pid
    argTypes:
    - char*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: is_interface
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_device.c
    functionUses: 0
    functionsReached:
    - switch_to_ns
    - strncmp
    - netns_getifaddrs
    - strlen
    - exit
    - _exit
    - wait_for_pid
    - fork
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool is_interface(const char *dev_name, pid_t pid)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/lxc/src/lxc/tools/lxc_device.c:89,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:90,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:91,1
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_device.c:94,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:95,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_device.c:104,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:105,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_device.c:107,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:109,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:110,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_device.c:114,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_device.c:116,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:117,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_device.c:121,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:123,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_device.c:128,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:129,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:134,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_device.c:146,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_device.c:146,1
    - Dst: is_interface
      Src: /src/lxc/src/lxc/tools/lxc_device.c:147,1
    - Dst: struct lxc_container*::attach_interface
      Src: /src/lxc/src/lxc/tools/lxc_device.c:148,1
    - Dst: struct lxc_container*::add_device_node
      Src: /src/lxc/src/lxc/tools/lxc_device.c:150,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:152,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_device.c:155,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_device.c:155,1
    - Dst: is_interface
      Src: /src/lxc/src/lxc/tools/lxc_device.c:156,1
    - Dst: struct lxc_container*::init_pid
      Src: /src/lxc/src/lxc/tools/lxc_device.c:156,1
    - Dst: struct lxc_container*::detach_interface
      Src: /src/lxc/src/lxc/tools/lxc_device.c:157,1
    - Dst: struct lxc_container*::remove_device_node
      Src: /src/lxc/src/lxc/tools/lxc_device.c:159,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:161,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_device.c:165,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:169,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_device.c:172,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_device.c:173,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 174
    functionName: lxc_device_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_device.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - exit
    - lxc_container_new
    - lxc_arguments_parse
    - ERROR
    - struct lxc_container*::remove_device_node
    - lxc_log_init
    - struct lxc_container*::add_device_node
    - strlen
    - is_interface
    - struct lxc_container*::attach_interface
    - strncmp
    - geteuid
    - struct lxc_container*::load_config
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::init_pid
    - struct lxc_container*::detach_interface
    - strdup
    linkageType: ''
    returnType: int
    signature: int lxc_device_main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - lxc_safe_int
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcsetattr
      Src: /src/lxc/src/lxc/tools/lxc_top.c:125,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: stdin_tios_restore
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - fprintf
    - tcsetattr
    linkageType: ''
    returnType: void
    signature: void stdin_tios_restore(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/lxc/src/lxc/tools/lxc_top.c:133,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:134,1
    - Dst: tcgetattr
      Src: /src/lxc/src/lxc/tools/lxc_top.c:138,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:139,1
    - Dst: tcsetattr
      Src: /src/lxc/src/lxc/tools/lxc_top.c:152,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: stdin_tios_setup
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - tcsetattr
    - fprintf
    - tcgetattr
    - isatty
    linkageType: ''
    returnType: int
    signature: int stdin_tios_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/lxc/src/lxc/tools/lxc_top.c:164,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/tools/lxc_top.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: stdin_tios_rows
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - ioctl
    - isatty
    linkageType: ''
    returnType: int
    signature: int stdin_tios_rows(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_top.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: sig_handler
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void sig_handler(int sig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:180,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:185,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:189,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:192,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - val
    - buf
    - bufsz
    argTypes:
    - unsigned long long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 197
    functionName: size_humanize
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 3
    functionsReached:
    - snprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void size_humanize(unsigned long long val, char *buf, size_t bufsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_top.c:205,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:207,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_top.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - c
    - item
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: stat_get_int
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - strtoull
    - fprintf
    - struct lxc_container*::get_cgroup_item
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t stat_get_int(struct lxc_container *c, const char *item)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_top.c:224,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:226,1
    - Dst: lxc_string_split_and_trim
      Src: /src/lxc/src/lxc/tools/lxc_top.c:230,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_top.c:234,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_top.c:236,1
    - Dst: lxc_string_split_and_trim
      Src: /src/lxc/src/lxc/tools/lxc_top.c:237,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_top.c:243,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_top.c:248,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_top.c:254,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - c
    - item
    - match
    - column
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 258
    functionName: stat_match_get_int
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - strncmp
    - fprintf
    - strlen
    - struct lxc_container*::get_cgroup_item
    - lxc_string_split_and_trim
    - lxc_free_array
    - strtoull
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t stat_match_get_int(struct lxc_container *c, const char *item,\n\t\t\t\t
      \  const char *match, int column)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_top.c:284,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:286,1
    - Dst: lxc_string_split_and_trim
      Src: /src/lxc/src/lxc/tools/lxc_top.c:290,1
    - Dst: memset
      Src: /src/lxc/src/lxc/tools/lxc_top.c:294,1
    - Dst: lxc_string_split_and_trim
      Src: /src/lxc/src/lxc/tools/lxc_top.c:297,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_top.c:301,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_top.c:301,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_top.c:302,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_top.c:303,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_top.c:303,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_top.c:304,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_top.c:306,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_top.c:306,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_top.c:307,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_top.c:309,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_top.c:313,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - c
    - item
    - stats
    argTypes:
    - struct lxc_container*
    - char*
    - struct blkio_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 315
    functionName: stat_get_blk_stats
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - memset
    - strncmp
    - fprintf
    - strlen
    - struct lxc_container*::get_cgroup_item
    - lxc_string_split_and_trim
    - lxc_free_array
    - strtoull
    linkageType: ''
    returnType: void
    signature: "void stat_get_blk_stats(struct lxc_container *c, const char *item,\n\t\t\t
      \     struct blkio_stats *stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:320,1
    - Dst: stat_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:321,1
    - Dst: stat_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:322,1
    - Dst: stat_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:323,1
    - Dst: stat_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:324,1
    - Dst: stat_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:325,1
    - Dst: stat_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:326,1
    - Dst: stat_match_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:327,1
    - Dst: stat_match_get_int
      Src: /src/lxc/src/lxc/tools/lxc_top.c:328,1
    - Dst: stat_get_blk_stats
      Src: /src/lxc/src/lxc/tools/lxc_top.c:330,1
    - Dst: stat_get_blk_stats
      Src: /src/lxc/src/lxc/tools/lxc_top.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - c
    - ct
    - total
    argTypes:
    - struct lxc_container*
    - struct container_stats*
    - struct stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 347
    functionName: stats_get
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - stat_match_get_int
    - stat_get_blk_stats
    - stat_get_int
    linkageType: ''
    returnType: void
    signature: void stats_get(struct lxc_container *c, struct container_stats *ct,
      struct stats *total)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:352,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:355,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:358,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:359,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:361,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:364,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:367,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:369,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - stats
    argTypes:
    - struct stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: stats_print_header
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void stats_print_header(struct stats *stats)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_top.c:388,1
    - Dst: size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_top.c:389,1
    - Dst: size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_top.c:390,1
    - Dst: size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_top.c:391,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:393,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:395,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:397,1
    - Dst: size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_top.c:406,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:407,1
    - Dst: size_humanize
      Src: /src/lxc/src/lxc/tools/lxc_top.c:410,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:411,1
    - Dst: gettimeofday
      Src: /src/lxc/src/lxc/tools/lxc_top.c:414,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - name
    - stats
    - total
    argTypes:
    - char*
    - struct stats*
    - struct stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 425
    functionName: stats_print
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - printf
    - gettimeofday
    - snprintf
    - size_humanize
    linkageType: ''
    returnType: void
    signature: "void stats_print(const char *name, const struct stats *stats,\n\t\t\tconst
      struct stats *total)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_top.c:433,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_top.c:433,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_top.c:435,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_top.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct1
    - sct2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 436
    functionName: cmp_name
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int cmp_name(const void *sct1, const void *sct2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct1
    - sct2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: cmp_cpuuse
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_cpuuse(const void *sct1, const void *sct2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct1
    - sct2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: cmp_blkio
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_blkio(const void *sct1, const void *sct2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct1
    - sct2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 469
    functionName: cmp_memory
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_memory(const void *sct1, const void *sct2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct1
    - sct2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 480
    functionName: cmp_memorysw
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_memorysw(const void *sct1, const void *sct2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sct1
    - sct2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: cmp_kmemory
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_kmemory(const void *sct1, const void *sct2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/lxc/src/lxc/tools/lxc_top.c:507,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - active
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 508
    functionName: ct_sort
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void ct_sort(int active)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_top.c:516,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_top.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 523
    functionName: ct_free
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - lxc_container_put
    - free
    linkageType: ''
    returnType: void
    signature: void ct_free(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ct_free
      Src: /src/lxc/src/lxc/tools/lxc_top.c:530,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/tools/lxc_top.c:532,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:534,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_top.c:535,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_top.c:539,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:541,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_top.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - active_cnt
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 548
    functionName: ct_realloc
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ct_free
    - exit
    - realloc
    - malloc
    linkageType: ''
    returnType: void
    signature: void ct_realloc(int active_cnt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_top.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 567
    functionName: stdin_handler
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: "int stdin_handler(int fd, uint32_t events, void *data,\n\t\t\t struct
      lxc_async_descr *descr)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_top.c:578,1
    - Dst: stdin_tios_rows
      Src: /src/lxc/src/lxc/tools/lxc_top.c:581,1
    - Dst: stdin_tios_setup
      Src: /src/lxc/src/lxc/tools/lxc_top.c:582,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:583,1
    - Dst: atexit
      Src: /src/lxc/src/lxc/tools/lxc_top.c:588,1
    - Dst: signal
      Src: /src/lxc/src/lxc/tools/lxc_top.c:589,1
    - Dst: signal
      Src: /src/lxc/src/lxc/tools/lxc_top.c:590,1
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/tools/lxc_top.c:592,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:593,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/tools/lxc_top.c:597,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:602,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:611,1
    - Dst: list_active_containers
      Src: /src/lxc/src/lxc/tools/lxc_top.c:619,1
    - Dst: ct_realloc
      Src: /src/lxc/src/lxc/tools/lxc_top.c:620,1
    - Dst: memset
      Src: /src/lxc/src/lxc/tools/lxc_top.c:622,1
    - Dst: stats_get
      Src: /src/lxc/src/lxc/tools/lxc_top.c:625,1
    - Dst: ct_sort
      Src: /src/lxc/src/lxc/tools/lxc_top.c:627,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:630,1
    - Dst: stats_print_header
      Src: /src/lxc/src/lxc/tools/lxc_top.c:631,1
    - Dst: stats_print
      Src: /src/lxc/src/lxc/tools/lxc_top.c:635,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:636,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/tools/lxc_top.c:640,1
    - Dst: stats_print
      Src: /src/lxc/src/lxc/tools/lxc_top.c:641,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_top.c:643,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_top.c:646,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/tools/lxc_top.c:653,1
    - Dst: sleep
      Src: /src/lxc/src/lxc/tools/lxc_top.c:674,1
    - Dst: lxc_mainloop_close
      Src: /src/lxc/src/lxc/tools/lxc_top.c:681,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_top.c:684,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 85
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 570
    functionDepth: 7
    functionLinenumber: 570
    functionLinenumberEnd: 685
    functionName: lxc_top_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_top.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    - lxc_mainloop
    - lxc_arguments_parse
    - lxc_mainloop_open
    - stats_print_header
    - stdin_tios_rows
    - list_active_containers
    - stats_get
    - fflush
    - ct_sort
    - stdin_tios_setup
    - memset
    - stats_print
    - lxc_mainloop_close
    - atexit
    - sprintf
    - lxc_mainloop_add_handler
    - signal
    - ct_realloc
    - printf
    - lxc_container_put
    - sleep
    linkageType: ''
    returnType: int
    signature: int lxc_top_main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: my_checker
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_cgroup.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: int my_checker(const struct lxc_arguments *args)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:60,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:61,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:70,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:71,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:75,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:77,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:80,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:82,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:83,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:84,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:85,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:88,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:90,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:91,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:92,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:96,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:97,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:98,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:99,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:102,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:103,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:104,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:105,1
    - Dst: struct lxc_container*::set_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:111,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:112,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:114,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:115,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:121,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:123,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:125,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:126,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:129,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:132,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_cgroup.c:134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 135
    functionName: lxc_cgroup_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_cgroup.c
    functionUses: 0
    functionsReached:
    - printf
    - struct lxc_container*::clear_config
    - exit
    - struct lxc_container*::is_running
    - struct lxc_container*::get_cgroup_item
    - lxc_container_new
    - lxc_container_put
    - strdup
    - lxc_arguments_parse
    - struct lxc_container*::set_cgroup_item
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_cgroup_main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isascii
      Src: /src/lxc/src/lxc/tools/arguments.c:31,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 3
    argNames:
    - a_options
    - a_shortopts
    - a_size
    argTypes:
    - struct option*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 66
    functionName: build_shortopts
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 0
    functionsReached:
    - isascii
    linkageType: ''
    returnType: int
    signature: "int build_shortopts(const struct option *a_options, char *a_shortopts,\n\t\t\t
      \  size_t a_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:75,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:78,1
    - Dst: isprint
      Src: /src/lxc/src/lxc/tools/arguments.c:80,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:81,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:83,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/arguments.c:90,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/arguments.c:92,1
    - Dst: toupper
      Src: /src/lxc/src/lxc/tools/arguments.c:95,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:98,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:100,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/arguments.c:102,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:105,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:108,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:111,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/arguments.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - longopts
    - a_args
    argTypes:
    - struct option[]
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 113
    functionName: print_usage_exit
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 0
    functionsReached:
    - fprintf
    - free
    - exit
    - isprint
    - toupper
    - strdup
    linkageType: ''
    returnType: __noreturn
    signature: "__noreturn print_usage_exit(const struct option longopts[],\n\t\t\t\t\t
      \ const struct lxc_arguments *a_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/arguments.c:117,1
    - Dst: lxc_get_version
      Src: /src/lxc/src/lxc/tools/arguments.c:117,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/arguments.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: print_version_exit
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 0
    functionsReached:
    - printf
    - exit
    - lxc_get_version
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn print_version_exit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:124,1
    - Dst: struct lxc_arguments*::helpfn
      Src: /src/lxc/src/lxc/tools/arguments.c:143,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/arguments.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - args
    - code
    argTypes:
    - struct lxc_arguments*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 146
    functionName: print_help_exit
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 0
    functionsReached:
    - struct lxc_arguments*::helpfn
    - exit
    - fprintf
    linkageType: ''
    returnType: __noreturn
    signature: "__noreturn print_help_exit(const struct lxc_arguments *args,\n\t\t\t\t\t
      int code)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/arguments.c:153,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/arguments.c:156,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/tools/arguments.c:159,1
    - Dst: lxc_error
      Src: /src/lxc/src/lxc/tools/arguments.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - args
    - lxcpath
    argTypes:
    - struct lxc_arguments*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 168
    functionName: lxc_arguments_lxcpath_add
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 0
    functionsReached:
    - realloc
    - exit
    - lxc_error
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int lxc_arguments_lxcpath_add(struct lxc_arguments *args,\n\t\t\t\t
      \    const char *lxcpath)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: build_shortopts
      Src: /src/lxc/src/lxc/tools/arguments.c:177,1
    - Dst: lxc_error
      Src: /src/lxc/src/lxc/tools/arguments.c:179,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/tools/arguments.c:180,1
    - Dst: getopt_long
      Src: /src/lxc/src/lxc/tools/arguments.c:188,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/arguments.c:204,1
    - Dst: remove_trailing_slashes
      Src: /src/lxc/src/lxc/tools/arguments.c:214,1
    - Dst: lxc_arguments_lxcpath_add
      Src: /src/lxc/src/lxc/tools/arguments.c:215,1
    - Dst: print_usage_exit
      Src: /src/lxc/src/lxc/tools/arguments.c:220,1
    - Dst: print_version_exit
      Src: /src/lxc/src/lxc/tools/arguments.c:222,1
    - Dst: print_help_exit
      Src: /src/lxc/src/lxc/tools/arguments.c:224,1
    - Dst: print_help_exit
      Src: /src/lxc/src/lxc/tools/arguments.c:226,1
    - Dst: struct lxc_arguments*::parser
      Src: /src/lxc/src/lxc/tools/arguments.c:229,1
    - Dst: lxc_arguments_lxcpath_add
      Src: /src/lxc/src/lxc/tools/arguments.c:244,1
    - Dst: lxc_get_global_config_item
      Src: /src/lxc/src/lxc/tools/arguments.c:245,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/arguments.c:251,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/arguments.c:251,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/arguments.c:252,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/arguments.c:252,1
    - Dst: lxc_error
      Src: /src/lxc/src/lxc/tools/arguments.c:261,1
    - Dst: struct lxc_arguments*::checker
      Src: /src/lxc/src/lxc/tools/arguments.c:267,1
    - Dst: lxc_error
      Src: /src/lxc/src/lxc/tools/arguments.c:271,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 3
    argNames:
    - args
    - argc
    - argv
    argTypes:
    - struct lxc_arguments*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 274
    functionName: lxc_arguments_parse
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 10
    functionsReached:
    - print_usage_exit
    - strcmp
    - build_shortopts
    - strncmp
    - struct lxc_arguments*::parser
    - strerror
    - strlen
    - lxc_get_global_config_item
    - print_version_exit
    - print_help_exit
    - lxc_arguments_lxcpath_add
    - lxc_error
    - getopt_long
    - remove_trailing_slashes
    - struct lxc_arguments*::checker
    linkageType: ''
    returnType: int
    signature: "int lxc_arguments_parse(struct lxc_arguments *args, int argc,\n\t\t\t
      \      char *const argv[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/lxc/src/lxc/tools/arguments.c:282,1
    - Dst: lxc_error
      Src: /src/lxc/src/lxc/tools/arguments.c:284,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/tools/arguments.c:285,1
    - Dst: lxc_error
      Src: /src/lxc/src/lxc/tools/arguments.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - args
    - str
    argTypes:
    - struct lxc_arguments*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 295
    functionName: lxc_arguments_str_to_int
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 0
    functionsReached:
    - strtol
    - strerror
    - lxc_error
    linkageType: ''
    returnType: int
    signature: int lxc_arguments_str_to_int(struct lxc_arguments *args, const char
      *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/arguments.c:319,1
    - Dst: lxc_error
      Src: /src/lxc/src/lxc/tools/arguments.c:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - args
    - c
    argTypes:
    - struct lxc_arguments*
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 326
    functionName: lxc_setup_shared_ns
    functionSourceFile: /src/lxc/src/lxc/tools/arguments.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::set_config_item
    - lxc_error
    linkageType: ''
    returnType: bool
    signature: bool lxc_setup_shared_ns(struct lxc_arguments *args, struct lxc_container
      *c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:73,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:74,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:85,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:86,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:89,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:90,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:91,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:92,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:96,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:98,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:99,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:103,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:105,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:106,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:107,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:108,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:111,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:113,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:114,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:115,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:120,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:121,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:122,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:125,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:126,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:127,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:128,1
    - Dst: do_snapshot_task
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:131,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:133,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:136,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:138,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 139
    functionName: lxc_snapshot_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - exit
    - access
    - lxc_container_new
    - lxc_container_put
    - geteuid
    - strdup
    - lxc_arguments_parse
    - do_snapshot_task
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_snapshot_main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: do_snapshot_destroy
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:147,1
    - Dst: do_snapshot_list
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:150,1
    - Dst: do_snapshot_restore
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:153,1
    - Dst: do_snapshot
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - c
    - task
    argTypes:
    - struct lxc_container*
    - enum task
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: do_snapshot_task
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 1
    functionsReached:
    - do_snapshot_list
    - do_snapshot
    - do_snapshot_destroy
    - do_snapshot_restore
    linkageType: ''
    returnType: int
    signature: int do_snapshot_task(struct lxc_container *c, enum task task)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 192
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::snapshot
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:198,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c
    - commentfile
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 205
    functionName: do_snapshot
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 1
    functionsReached:
    - ERROR
    - struct lxc_container*::snapshot
    linkageType: ''
    returnType: int
    signature: int do_snapshot(struct lxc_container *c, char *commentfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:211,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:211,1
    - Dst: struct lxc_container*::snapshot_destroy_all
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:212,1
    - Dst: struct lxc_container*::snapshot_destroy
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:214,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - snapname
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 222
    functionName: do_snapshot_destroy
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 3
    functionsReached:
    - strncmp
    - strlen
    - struct lxc_container*::snapshot_destroy_all
    - struct lxc_container*::snapshot_destroy
    - ERROR
    linkageType: ''
    returnType: int
    signature: int do_snapshot_destroy(struct lxc_container *c, char *snapname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::snapshot_list
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:229,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:231,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:236,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:241,1
    - Dst: print_file
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:244,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:246,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - c
    - print_comments
    argTypes:
    - struct lxc_container*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 252
    functionName: do_snapshot_list
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 1
    functionsReached:
    - printf
    - free
    - print_file
    - ERROR
    - struct lxc_container*::snapshot_list
    linkageType: ''
    returnType: int
    signature: int do_snapshot_list(struct lxc_container *c, int print_comments)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:265,1
    - Dst: struct lxc_container*::snapshot_restore
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:272,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - c
    - args
    argTypes:
    - struct lxc_container*
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 279
    functionName: do_snapshot_restore
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 1
    functionsReached:
    - struct lxc_container*::snapshot_restore
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int do_snapshot_restore(struct lxc_container *c,\n\t\t\t       struct
      lxc_arguments *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:290,1
    - Dst: getline
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:294,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:295,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:297,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/tools/lxc_snapshot.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: print_file
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_snapshot.c
    functionUses: 1
    functionsReached:
    - printf
    - fclose
    - free
    - getline
    - fopen
    linkageType: ''
    returnType: void
    signature: void print_file(char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:204,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:205,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:216,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:217,1
    - Dst: lxc_string_split_and_trim
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:238,1
    - Dst: lxc_array_len
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:239,1
    - Dst: ls_get
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:248,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:251,1
    - Dst: ls_field_width
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:255,1
    - Dst: ls_print_table
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:258,1
    - Dst: ls_print_fancy_format
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:260,1
    - Dst: ls_get_term_width
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:264,1
    - Dst: ls_print_names
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:265,1
    - Dst: ls_free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:271,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:272,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:274,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 275
    functionName: lxc_ls_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 0
    functionsReached:
    - ls_print_table
    - ls_get_term_width
    - ls_free
    - lxc_array_len
    - exit
    - ls_print_fancy_format
    - lxc_string_split_and_trim
    - lxc_arguments_parse
    - lxc_free_array
    - ls_print_names
    - ls_get
    - ls_field_width
    - lxc_log_init
    linkageType: ''
    returnType: int
    signature: int lxc_ls_main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:283,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:284,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:285,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:286,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:287,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:288,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - l
    - size
    argTypes:
    - struct ls*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: ls_free
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ls_free(struct ls *l, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:299,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:301,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:305,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:309,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - c
    - item
    - running
    argTypes:
    - struct lxc_container*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 313
    functionName: ls_get_config_item
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::get_config_item
    - move_ptr
    - struct lxc_container*::get_running_config_item
    - malloc
    linkageType: ''
    returnType: char
    signature: char *ls_get_config_item(struct lxc_container *c, const char *item,
      bool running)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:320,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arr
    - size
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: ls_free_arr
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ls_free_arr(char **arr, size_t size)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: lxc_append_paths
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:348,1
    - Dst: dir_exists
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:352,1
    - Dst: list_active_containers
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:359,1
    - Dst: list_all_containers
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:361,1
    - Dst: regcomp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:381,1
    - Dst: regexec
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:387,1
    - Dst: regfree
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:388,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:394,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:400,1
    - Dst: struct lxc_container*::state
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:405,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:409,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:412,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:415,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:418,1
    - Dst: ls_get_groups
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:420,1
    - Dst: ls_has_all_grps
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:421,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:422,1
    - Dst: ls_new
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:427,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:429,1
    - Dst: lxc_append_paths
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:443,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:446,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:455,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:458,1
    - Dst: ls_get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:462,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:465,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:466,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:468,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:471,1
    - Dst: struct lxc_container*::init_pid
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:476,1
    - Dst: ls_get_interface
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:480,1
    - Dst: ls_get_ips
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:482,1
    - Dst: ls_get_ips
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:484,1
    - Dst: ls_get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:486,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:488,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:490,1
    - Dst: ls_get_swap
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:493,1
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:495,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:497,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:499,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:510,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:529,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:531,1
    - Dst: ls_deserialize
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:535,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:539,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:543,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:544,1
    - Dst: ls_get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:552,1
    - Dst: lxc_append_paths
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:561,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:562,1
    - Dst: ls_remove_lock
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:569,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:570,1
    - Dst: ls_get
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:574,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:575,1
    - Dst: ls_remove_lock
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:578,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:582,1
    - Dst: ls_free_arr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:587,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:588,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:593,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 164
    argCount: 10
    argNames:
    - m
    - size
    - args
    - basepath
    - parent
    - lvl
    - lockpath
    - len_lockpath
    - grps_must
    - grps_must_len
    argTypes:
    - struct ls**
    - size_t*
    - struct lxc_arguments*
    - char*
    - char*
    - unsigned int
    - char**
    - size_t
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 325
    functionDepth: 8
    functionLinenumber: 325
    functionLinenumberEnd: 596
    functionName: ls_get
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 2
    functionsReached:
    - lxc_safe_uint
    - close
    - dir_exists
    - lxc_container_new
    - struct lxc_container*::state
    - ls_get_ips
    - wait_for_pid
    - strtoull
    - ls_get
    - ls_has_all_grps
    - free
    - socketpair
    - list_active_containers
    - ls_get_cgroup_item
    - lxc_append_paths
    - ls_free_arr
    - ls_get_swap
    - ls_get_interface
    - struct lxc_container*::get_running_config_item
    - struct lxc_container*::is_defined
    - shutdown
    - struct lxc_container*::attach
    - regexec
    - struct lxc_container*::may_control
    - strcmp
    - printf
    - ls_get_config_item
    - list_all_containers
    - struct lxc_container*::get_config_item
    - struct lxc_container*::is_running
    - regcomp
    - lxc_container_put
    - ls_get_groups
    - ls_deserialize
    - struct lxc_container*::init_pid
    - strdup
    - ls_remove_lock
    - regfree
    - ls_new
    linkageType: ''
    returnType: int
    signature: "int ls_get(struct ls **m, size_t *size, const struct lxc_arguments
      *args,\n\t\t  const char *basepath, const char *parent, unsigned int lvl, char
      **lockpath,\n\t\t  size_t len_lockpath, char **grps_must, size_t grps_must_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:602,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:606,1
    - Dst: struct lxc_container*::get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:610,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - c
    - item
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 614
    functionName: ls_get_cgroup_item
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - malloc
    - move_ptr
    - struct lxc_container*::get_cgroup_item
    linkageType: ''
    returnType: char
    signature: char *ls_get_cgroup_item(struct lxc_container *c, const char *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_running_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:622,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:624,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:627,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:631,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:638,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:641,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:642,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:646,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - c
    - running
    argTypes:
    - struct lxc_container*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 647
    functionName: ls_get_groups
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - lxc_string_replace
    - struct lxc_container*::get_config_item
    - struct lxc_container*::get_running_config_item
    - free
    - strrchr
    - move_ptr
    - malloc
    linkageType: ''
    returnType: char
    signature: char *ls_get_groups(struct lxc_container *c, bool running)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_ips
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:654,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:656,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - inet
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 661
    functionName: ls_get_ips
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - struct lxc_container*::get_ips
    - lxc_string_join
    - lxc_free_array
    linkageType: ''
    returnType: char
    signature: char *ls_get_ips(struct lxc_container *c, const char *inet)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_interfaces
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:665,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:669,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 674
    functionName: ls_get_interface
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - lxc_free_array
    - struct lxc_container*::get_interfaces
    - lxc_string_join
    linkageType: ''
    returnType: char
    signature: char *ls_get_interface(struct lxc_container *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ls_get_cgroup_item
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:689,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:693,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:701,1
    - Dst: strtoull
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 711
    functionName: ls_get_swap
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - strtoull
    - ls_get_cgroup_item
    - strstr
    - strchr
    linkageType: ''
    returnType: double
    signature: double ls_get_swap(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:717,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:718,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 724
    functionName: ls_get_term_width
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ls_get_term_width(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_string_split_and_trim
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:735,1
    - Dst: lxc_array_len
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:736,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:745,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:755,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - has
    - must
    - must_len
    argTypes:
    - char*
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 758
    functionName: ls_has_all_grps
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - strcmp
    - lxc_array_len
    - lxc_string_split_and_trim
    - lxc_free_array
    linkageType: ''
    returnType: bool
    signature: bool ls_has_all_grps(const char *has, char **must, size_t must_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ls
    - size
    argTypes:
    - struct ls**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 775
    functionName: ls_new
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - realloc
    linkageType: ''
    returnType: struct ls
    signature: struct ls *ls_new(struct ls **ls, size_t *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:788,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:790,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:794,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:797,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - l
    - lht
    - size
    - termwidth
    - list
    argTypes:
    - struct ls*
    - struct lengths*
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 805
    functionName: ls_print_names
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void ls_print_names(struct ls *l, struct lengths *lht, size_t size,
      size_t termwidth, bool list)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: lxc_string_split_and_trim
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:814,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:821,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:821,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:822,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:822,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:823,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:823,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:824,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:824,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:825,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:825,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:826,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:827,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:828,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:835,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:836,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:837,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:838,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:839,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:840,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:841,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:842,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:843,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:844,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:845,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:846,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:847,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:848,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:849,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:850,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:851,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:852,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:853,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:854,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:855,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:856,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:858,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:865,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:867,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:868,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:870,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:872,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:873,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:874,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:876,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:878,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:879,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:881,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:883,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:884,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:886,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:888,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:889,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:890,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:891,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:892,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:893,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:894,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:895,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:896,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:897,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:898,1
    - Dst: strcasecmp
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:899,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:900,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:903,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:906,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 87
    argCount: 4
    argNames:
    - l
    - lht
    - size
    - fancy_fmt
    argTypes:
    - struct ls*
    - struct lengths*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 907
    functionName: ls_print_fancy_format
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - printf
    - fprintf
    - lxc_string_split_and_trim
    - lxc_free_array
    - strcasecmp
    linkageType: ''
    returnType: void
    signature: "void ls_print_fancy_format(struct ls *l, struct lengths *lht, size_t
      size,\n\t\t\t\t  const char *fancy_fmt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:920,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:921,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:922,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:923,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:924,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:925,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:926,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:927,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:931,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:932,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:934,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:937,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:938,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:939,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:940,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:941,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:942,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:943,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - l
    - lht
    - size
    argTypes:
    - struct ls*
    - struct lengths*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 945
    functionName: ls_print_table
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void ls_print_table(struct ls *l, struct lengths *lht, size_t size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:984,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 1003
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1014,1
    - Dst: ls_get
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1018,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1023,1
    - Dst: ls_serialize
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1027,1
    - Dst: shutdown
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1033,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1034,1
    - Dst: ls_free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1035,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - wrap
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1005
    functionDepth: 9
    functionLinenumber: 1005
    functionLinenumberEnd: 1038
    functionName: ls_get_wrapper
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 0
    functionsReached:
    - close
    - ls_free
    - shutdown
    - ls_serialize
    - ls_get
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int ls_get_wrapper(void *wrap)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_rundir
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1051,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1057,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1057,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1057,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1059,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1067,1
    - Dst: lxc_rm_rf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1071,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1073,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1078,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - path
    - name
    - lockpath
    - len_lockpath
    - recalc
    argTypes:
    - char*
    - char*
    - char**
    - size_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1080
    functionName: ls_remove_lock
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - lxc_rm_rf
    - WARN
    - free
    - strlen
    - snprintf
    - get_rundir
    - realloc
    linkageType: ''
    returnType: int
    signature: "int ls_remove_lock(const char *path, const char *name, char **lockpath,
      size_t *len_lockpath,\n\t\t\t  bool recalc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1087,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1089,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - buf
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1098
    functionName: ls_send_str
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 0
    functionsReached:
    - strlen
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int ls_send_str(int fd, const char *buf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1103,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1107,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1111,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1115,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1119,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1123,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1127,1
    - Dst: ls_send_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1131,1
    - Dst: ls_send_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1135,1
    - Dst: ls_send_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1139,1
    - Dst: ls_send_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1143,1
    - Dst: ls_send_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1147,1
    - Dst: ls_send_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1151,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - wpipefd
    - n
    argTypes:
    - int
    - struct ls*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1155
    functionName: ls_serialize
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - ls_send_str
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int ls_serialize(int wpipefd, struct ls *n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1162,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1170,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1174,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - fd
    - buf
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1184
    functionName: ls_recv_str
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 0
    functionsReached:
    - move_ptr
    - lxc_read_nointr
    - malloc
    linkageType: ''
    returnType: int
    signature: int ls_recv_str(int fd, char **buf)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1194,1
    - Dst: ls_new
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1198,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1203,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1207,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1211,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1215,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1219,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1223,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1227,1
    - Dst: ls_recv_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1231,1
    - Dst: ls_recv_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1235,1
    - Dst: ls_recv_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1239,1
    - Dst: ls_recv_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1243,1
    - Dst: ls_recv_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1247,1
    - Dst: ls_recv_str
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1251,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - rpipefd
    - m
    - len
    argTypes:
    - int
    - struct ls**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1256
    functionName: ls_deserialize
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - ls_recv_str
    - lxc_read_nointr
    - ls_new
    linkageType: ''
    returnType: int
    signature: int ls_deserialize(int rpipefd, struct ls **m, size_t *len)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1265,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1271,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1277,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1283,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1288,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1294,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1299,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1302,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_ls.c:1306,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - l
    - size
    - lht
    argTypes:
    - struct ls*
    - size_t
    - struct lengths*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1310
    functionName: ls_field_width
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_ls.c
    functionUses: 1
    functionsReached:
    - strlen
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ls_field_width(const struct ls *l, const size_t size, struct lengths
      *lht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:41,1
    - Dst: lxc_rexec
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:41,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:42,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: lxc_attach_rexec
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_attach.c
    functionUses: 0
    functionsReached:
    - _exit
    - lxc_rexec
    - getenv
    - fprintf
    linkageType: ''
    returnType: void
    signature: void lxc_attach_rexec(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: lxc_fill_elevated_privileges
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:150,1
    - Dst: lxc_config_parse_arch
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:156,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:158,1
    - Dst: lxc_namespace_2_std_identifiers
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:165,1
    - Dst: lxc_fill_namespace_flags
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:168,1
    - Dst: lxc_fill_elevated_privileges
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:173,1
    - Dst: add_to_simple_array
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:182,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:184,1
    - Dst: add_to_simple_array
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:189,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:191,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:202,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:206,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 215
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_attach.c
    functionUses: 0
    functionsReached:
    - lxc_namespace_2_std_identifiers
    - lxc_safe_uint
    - lxc_fill_namespace_flags
    - add_to_simple_array
    - lxc_fill_elevated_privileges
    - lxc_config_parse_arch
    - ERROR
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:243,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:247,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:255,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - flaglist
    - flags
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 260
    functionName: lxc_fill_elevated_privileges
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_attach.c
    functionUses: 1
    functionsReached:
    - syserror_set
    - lxc_iterate_parts
    - strequal
    linkageType: ''
    returnType: int
    signature: int lxc_fill_elevated_privileges(char *flaglist, unsigned int *flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:276,1
    - Dst: memset
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - array
    - capacity
    - value
    argTypes:
    - char***
    - ssize_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 291
    functionName: add_to_simple_array
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_attach.c
    functionUses: 1
    functionsReached:
    - realloc
    - memset
    linkageType: ''
    returnType: int
    signature: int add_to_simple_array(char ***array, ssize_t *capacity, char *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:295,1
    - Dst: isatty
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:298,1
    - Dst: isatty
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: stdfd_is_pty
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_attach.c
    functionUses: 0
    functionsReached:
    - isatty
    linkageType: ''
    returnType: bool
    signature: bool stdfd_is_pty(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:311,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - log_file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 318
    functionName: lxc_attach_create_log_file
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_attach.c
    functionUses: 0
    functionsReached:
    - ERROR
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_attach_create_log_file(const char *log_file)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: lxc_caps_init
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:331,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:332,1
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:334,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:335,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:344,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:345,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:347,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:348,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:349,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:350,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:353,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:355,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:358,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:359,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:360,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:361,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:362,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:365,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:367,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:368,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:369,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:373,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:374,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:375,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:376,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:385,1
    - Dst: stdfd_is_pty
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:400,1
    - Dst: lxc_attach_create_log_file
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:415,1
    - Dst: struct lxc_container*::attach_run_wait
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:433,1
    - Dst: struct lxc_container*::attach
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:438,1
    - Dst: lxc_wait_for_pid_status
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:442,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:446,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:447,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:448,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:449,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:452,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:454,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_attach.c:456,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 103
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 457
    functionName: lxc_attach_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_attach.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - WIFSIGNALED
    - struct lxc_container*::clear_config
    - stdfd_is_pty
    - exit
    - lxc_container_new
    - lxc_arguments_parse
    - ERROR
    - lxc_log_init
    - lxc_attach_create_log_file
    - WTERMSIG
    - struct lxc_container*::attach
    - geteuid
    - WEXITSTATUS
    - struct lxc_container*::load_config
    - struct lxc_container*::attach_run_wait
    - struct lxc_container*::may_control
    - lxc_wait_for_pid_status
    - lxc_caps_init
    - access
    - lxc_container_put
    - strdup
    linkageType: ''
    returnType: int
    signature: int lxc_attach_main(int argc, char *argv[])
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_define_add
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:80,1
    - Dst: lxc_config_define_free
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:82,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:85,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:89,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 106
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_execute.c
    functionUses: 0
    functionsReached:
    - lxc_config_define_free
    - lxc_config_define_add
    - lxc_safe_uint
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:115,1
    - Dst: lxc_string_split_quoted
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - args
    argTypes:
    - struct lxc_container*
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 129
    functionName: set_argv
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_execute.c
    functionUses: 0
    functionsReached:
    - lxc_string_split_quoted
    - struct lxc_container*::get_config_item
    linkageType: ''
    returnType: bool
    signature: bool set_argv(struct lxc_container *c, struct lxc_arguments *args)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_init
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:140,1
    - Dst: lxc_caps_init
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:142,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:143,1
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:145,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:146,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:155,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:156,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:158,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:160,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:161,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:165,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:167,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:168,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:172,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:174,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:180,1
    - Dst: set_argv
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:185,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:186,1
    - Dst: lxc_config_define_load
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:190,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:197,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:201,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:209,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:213,1
    - Dst: lxc_setup_shared_ns
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:218,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:223,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:225,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:232,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:233,1
    - Dst: kill
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:236,1
    - Dst: WTERMSIG
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:236,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:240,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_execute.c:241,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 242
    functionName: lxc_execute_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_execute.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - struct lxc_container*::clear_config
    - exit
    - lxc_container_new
    - lxc_arguments_parse
    - ERROR
    - lxc_log_init
    - lxc_config_define_load
    - snprintf
    - set_argv
    - WTERMSIG
    - kill
    - lxc_list_init
    - WEXITSTATUS
    - struct lxc_container*::load_config
    - struct lxc_container*::start
    - struct lxc_container*::set_config_item
    - lxc_caps_init
    - lxc_container_put
    - lxc_setup_shared_ns
    - strdup
    linkageType: ''
    returnType: int
    signature: int lxc_execute_main(int argc, char *argv[])
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:88,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:93,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:118,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 125
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_checkpoint.c
    functionUses: 0
    functionsReached:
    - strdup
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:130,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:134,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:139,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: my_checker
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_checkpoint.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: int my_checker(const struct lxc_arguments *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:157,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:158,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:159,1
    - Dst: memset
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:163,1
    - Dst: struct lxc_container*::migrate
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:176,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:177,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 187
    functionName: checkpoint
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_checkpoint.c
    functionUses: 0
    functionsReached:
    - memset
    - struct lxc_container*::is_running
    - lxc_container_put
    - struct lxc_container*::migrate
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool checkpoint(struct lxc_container *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:194,1
    - Dst: struct lxc_container*::migrate
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:201,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:203,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 209
    functionName: restore_finalize
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_checkpoint.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_container_put
    - struct lxc_container*::migrate
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool restore_finalize(struct lxc_container *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:213,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:214,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:215,1
    - Dst: fork
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:222,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:224,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:229,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:230,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:232,1
    - Dst: restore_finalize
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:232,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:234,1
    - Dst: restore_finalize
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:239,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:242,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:245,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct lxc_container*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 247
    functionName: restore
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_checkpoint.c
    functionUses: 5
    functionsReached:
    - waitpid
    - WIFEXITED
    - close
    - SYSERROR
    - struct lxc_container*::is_running
    - restore_finalize
    - lxc_container_put
    - _exit
    - WEXITSTATUS
    - wait_for_pid
    - fork
    - ERROR
    linkageType: ''
    returnType: bool
    signature: bool restore(struct lxc_container *c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:256,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:257,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:266,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:267,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:269,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:271,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:272,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:276,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:278,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:279,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:280,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:281,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:284,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:286,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:287,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:288,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:292,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:293,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:294,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:295,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:298,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:299,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:300,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:301,1
    - Dst: restore
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:306,1
    - Dst: checkpoint
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:308,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:310,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:311,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:312,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:315,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_checkpoint.c:317,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 250
    functionDepth: 6
    functionLinenumber: 250
    functionLinenumberEnd: 318
    functionName: lxc_checkpoint_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_checkpoint.c
    functionUses: 0
    functionsReached:
    - restore
    - struct lxc_container*::clear_config
    - checkpoint
    - free
    - struct lxc_container*::is_defined
    - exit
    - lxc_container_new
    - lxc_container_put
    - strdup
    - lxc_arguments_parse
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_checkpoint_main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:45,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:46,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:55,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:56,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:58,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:60,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:61,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:64,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:65,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:66,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:67,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:71,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:73,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:74,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:75,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:76,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:79,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:81,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:82,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:83,1
    - Dst: struct lxc_container*::unfreeze
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:87,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:88,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:89,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:90,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:93,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_unfreeze.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 96
    functionName: lxc_unfreeze_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_unfreeze.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - struct lxc_container*::unfreeze
    - exit
    - lxc_container_new
    - lxc_container_put
    - strdup
    - lxc_arguments_parse
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_unfreeze_main(int argc, char *argv[])
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: accumulate_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:45,1
    - Dst: lxc_safe_long
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:48,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 53
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - accumulate_list
    - lxc_safe_long
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:106,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - str_ptr
    - p1
    argTypes:
    - char*
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 111
    functionName: list_contains_entry
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int list_contains_entry(char *str_ptr, struct lxc_list *p1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:106,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: lxc_list_for_each
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 5
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: void
    signature: void lxc_list_for_each(it1, p1)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:126,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:132,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:134,1
    - Dst: lxc_list_init
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:138,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:145,1
    - Dst: list_contains_entry
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:154,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:156,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:158,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:160,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:164,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:166,1
    - Dst: lxc_list_add_tail
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:170,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - input
    - delimiter
    - str_list
    argTypes:
    - char*
    - char*
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 177
    functionName: accumulate_list
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 1
    functionsReached:
    - list_contains_entry
    - free
    - strchr
    - lxc_list_init
    - lxc_list_add_tail
    - ERROR
    - strdup
    - malloc
    linkageType: ''
    returnType: struct lxc_list
    signature: "struct lxc_list *accumulate_list(char *input, char *delimiter,\n\t\t\t\t\tstruct
      lxc_list *str_list)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:186,1
    - Dst: lxc_list_init
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:190,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:192,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:194,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:199,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:203,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:205,1
    - Dst: lxc_list_add_tail
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:209,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - input
    - delimiter
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 215
    functionName: get_list
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - free
    - lxc_list_init
    - lxc_list_add_tail
    - strdup
    - malloc
    linkageType: ''
    returnType: struct lxc_list
    signature: struct lxc_list *get_list(char *input, char *delimiter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:199,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:203,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:205,1
    - Dst: lxc_list_add_tail
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: lxc_iterate_parts
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 15
    functionsReached:
    - free
    - lxc_list_add_tail
    - strdup
    - malloc
    linkageType: ''
    returnType: void
    signature: void lxc_iterate_parts(token, workstr, delimiter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:223,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:227,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:231,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:232,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:236,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:237,1
    - Dst: get_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:241,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 245
    functionName: get_config_list
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::get_config_item
    - free
    - strlen
    - get_list
    - malloc
    linkageType: ''
    returnType: struct lxc_list
    signature: struct lxc_list *get_config_list(struct lxc_container *c, char *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:252,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:256,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:260,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:261,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:265,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:266,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - c
    - key
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 271
    functionName: get_config_integer
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - printf
    - lxc_safe_int
    - struct lxc_container*::get_config_item
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: int get_config_integer(struct lxc_container *c, char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:278,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:279,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:282,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: cmporder
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - strlen
    - get_config_integer
    - strncmp
    linkageType: ''
    returnType: int
    signature: int cmporder(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmporder
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: cmporder_reverse
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - cmporder
    linkageType: ''
    returnType: int
    signature: int cmporder_reverse(const void *p1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_del
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:300,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:301,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:302,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c_groups_list
    argTypes:
    - struct lxc_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: toss_list
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - free
    - lxc_list_del
    linkageType: ''
    returnType: int
    signature: int toss_list(struct lxc_list *c_groups_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_del
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:300,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:301,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: lxc_list_for_each_safe
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 5
    functionsReached:
    - free
    - lxc_list_del
    linkageType: ''
    returnType: void
    signature: void lxc_list_for_each_safe(it, c_groups_list, next)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:318,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:319,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:330,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:331,1
    - Dst: list_defined_containers
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:334,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:337,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:341,1
    - Dst: qsort
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:343,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:347,1
    - Dst: accumulate_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:355,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:376,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:378,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:385,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:387,1
    - Dst: get_config_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:397,1
    - Dst: list_contains_entry
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:400,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:411,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:415,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:417,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:418,1
    - Dst: struct lxc_container*::shutdown
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:421,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:422,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:424,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:431,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:433,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:434,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:437,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:439,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:445,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:447,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:448,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:449,1
    - Dst: struct lxc_container*::reboot
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:452,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:454,1
    - Dst: sleep
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:456,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:456,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:462,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:464,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:465,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:466,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:469,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:471,1
    - Dst: sleep
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:473,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:473,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:484,1
    - Dst: toss_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:488,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:500,1
    - Dst: toss_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:502,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:505,1
    - Dst: toss_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:506,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:507,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:510,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:512,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:514,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 126
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 310
    functionDepth: 7
    functionLinenumber: 310
    functionLinenumberEnd: 515
    functionName: lxc_autostart_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 0
    functionsReached:
    - list_contains_entry
    - struct lxc_container*::shutdown
    - exit
    - get_config_integer
    - struct lxc_container*::reboot
    - calloc
    - lxc_arguments_parse
    - accumulate_list
    - lxc_log_init
    - qsort
    - toss_list
    - free
    - fflush
    - struct lxc_container*::want_daemonize
    - list_defined_containers
    - get_config_list
    - struct lxc_container*::start
    - struct lxc_container*::stop
    - struct lxc_container*::may_control
    - printf
    - struct lxc_container*::is_running
    - lxc_container_put
    - ERROR
    - sleep
    linkageType: ''
    returnType: int
    signature: int lxc_autostart_main(int argc, char *argv[])
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:376,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:378,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:385,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:387,1
    - Dst: get_config_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:397,1
    - Dst: list_contains_entry
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:400,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:411,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:415,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:417,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:418,1
    - Dst: struct lxc_container*::shutdown
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:421,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:422,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:424,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:431,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:433,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:434,1
    - Dst: struct lxc_container*::stop
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:437,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:439,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:445,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:447,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:448,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:449,1
    - Dst: struct lxc_container*::reboot
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:452,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:454,1
    - Dst: sleep
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:456,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:456,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:462,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:464,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:465,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:466,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:469,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:471,1
    - Dst: sleep
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:473,1
    - Dst: get_config_integer
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:473,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:484,1
    - Dst: toss_list
      Src: /src/lxc/src/lxc/tools/lxc_autostart.c:488,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 493
    functionName: lxc_list_for_each
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_autostart.c
    functionUses: 5
    functionsReached:
    - printf
    - list_contains_entry
    - struct lxc_container*::start
    - fflush
    - struct lxc_container*::shutdown
    - struct lxc_container*::is_running
    - get_config_integer
    - struct lxc_container*::reboot
    - lxc_container_put
    - get_config_list
    - struct lxc_container*::want_daemonize
    - sleep
    - toss_list
    - ERROR
    - struct lxc_container*::stop
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: void
    signature: void lxc_list_for_each(cmd_group, cmd_groups_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_config.c:28,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_config.c:29,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_config.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: usage
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_config.c
    functionUses: 2
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(char *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_config.c:38,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_config.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: list_config_items
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_config.c
    functionUses: 2
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void list_config_items(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_config.c:49,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_config.c:49,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_config.c:50,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_config.c:50,1
    - Dst: usage
      Src: /src/lxc/src/lxc/tools/lxc_config.c:51,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_config.c:53,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_config.c:53,1
    - Dst: list_config_items
      Src: /src/lxc/src/lxc/tools/lxc_config.c:54,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_config.c:57,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_config.c:57,1
    - Dst: lxc_get_global_config_item
      Src: /src/lxc/src/lxc/tools/lxc_config.c:58,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_config.c:60,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_config.c:62,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_config.c:64,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_config.c:68,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_config.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 70
    functionName: lxc_config_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_config.c
    functionUses: 0
    functionsReached:
    - usage
    - printf
    - strncmp
    - strlen
    - lxc_get_global_config_item
    - exit
    - list_config_items
    linkageType: ''
    returnType: int
    signature: int lxc_config_main(int argc, char *argv[])
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:155,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:156,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:167,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:168,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:171,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:172,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:173,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:174,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:179,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:180,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:196,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:198,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:201,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:203,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:204,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:208,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:210,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:215,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:216,1
    - Dst: struct lxc_container*::is_defined
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:220,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:221,1
    - Dst: do_clone_task
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:225,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:228,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:231,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:232,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 233
    functionName: lxc_copy_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - struct lxc_container*::is_defined
    - exit
    - access
    - lxc_container_new
    - strdup
    - geteuid
    - lxc_container_put
    - do_clone_task
    - lxc_arguments_parse
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_copy_main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - mnts
    - num
    - type
    argTypes:
    - struct mnts**
    - unsigned int*
    - enum mnttype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: add_mnt
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: struct mnts
    signature: struct mnts *add_mnt(struct mnts **mnts, unsigned int *num, enum mnttype
      type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:262,1
    - Dst: mkdtemp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:267,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:270,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:276,1
    - Dst: mkdtemp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:281,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:284,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - mnts
    - num
    - arg
    argTypes:
    - struct mnts*
    - unsigned int
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 291
    functionName: mk_rand_ovl_dirs
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - strdup
    - mkdtemp
    - snprintf
    linkageType: ''
    returnType: int
    signature: int mk_rand_ovl_dirs(struct mnts *mnts, unsigned int num, struct lxc_arguments
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_string_split
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:299,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:305,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:306,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:308,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:309,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:312,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:314,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:315,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 326
    functionName: lxc_normalize_path
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - free
    - memmove
    - strequal
    - lxc_string_split
    linkageType: ''
    returnType: char
    signature: char **lxc_normalize_path(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_normalize_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:333,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:337,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - path
    - as_prefix
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 341
    functionName: construct_path
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - lxc_normalize_path
    - lxc_string_join
    - lxc_free_array
    linkageType: ''
    returnType: char
    signature: char *construct_path(char *path, bool as_prefix)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:350,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:351,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:351,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:351,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:352,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:354,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:358,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:363,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:364,1
    - Dst: lxc_is_dir
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:364,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:365,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:365,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:365,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:367,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:371,1
    - Dst: lxc_is_dir
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:373,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:381,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mnts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 383
    functionName: set_mnt_entry
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - free
    - strlen
    - snprintf
    - lxc_is_dir
    - malloc
    linkageType: ''
    returnType: char
    signature: char *set_mnt_entry(struct mnts *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:391,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:394,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - c
    - newname
    - newpath
    - flags
    - bdevtype
    - fssize
    - task
    - args
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - int
    - char*
    - uint64_t
    - enum task
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 401
    functionName: do_clone
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - lxc_container_put
    - struct lxc_container*::clone
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int do_clone(struct lxc_container *c, char *newname, char *newpath,\n\t\t
      \   int flags, char *bdevtype, uint64_t fssize, enum task task,\n\t\t    char
      **args)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:417,1
    - Dst: mkdtemp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:421,1
    - Dst: chmod
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:424,1
    - Dst: remove
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:425,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:429,1
    - Dst: struct lxc_container*::clone
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:432,1
    - Dst: mount_tmpfs
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:438,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:442,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:443,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:449,1
    - Dst: mk_rand_ovl_dirs
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:453,1
    - Dst: set_mnt_entry
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:461,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:465,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:466,1
    - Dst: struct lxc_container*::save_config
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:471,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:475,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:478,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:482,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:485,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:488,1
    - Dst: struct lxc_container*::attach_run_wait
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:493,1
    - Dst: struct lxc_container*::shutdown
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:496,1
    - Dst: free_mnts
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:499,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:500,1
    - Dst: struct lxc_container*::shutdown
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:505,1
    - Dst: struct lxc_container*::get_config_item
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:507,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:508,1
    - Dst: struct lxc_container*::destroy
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:509,1
    - Dst: free_mnts
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:511,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:512,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 84
    argCount: 4
    argNames:
    - c
    - arg
    - args
    - flags
    argTypes:
    - struct lxc_container*
    - struct lxc_arguments*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 514
    functionName: do_clone_ephemeral
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::shutdown
    - remove
    - struct lxc_container*::clone
    - mount_tmpfs
    - free
    - strlen
    - mk_rand_ovl_dirs
    - snprintf
    - struct lxc_container*::save_config
    - mkdtemp
    - struct lxc_container*::destroy
    - struct lxc_container*::want_daemonize
    - free_mnts
    - struct lxc_container*::attach_run_wait
    - struct lxc_container*::start
    - printf
    - strcmp
    - set_mnt_entry
    - struct lxc_container*::get_config_item
    - struct lxc_container*::set_config_item
    - lxc_container_put
    - chmod
    linkageType: ''
    returnType: int
    signature: "int do_clone_ephemeral(struct lxc_container *c,\n\t\tstruct lxc_arguments
      *arg, char **args, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct lxc_container*::rename
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:518,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - newname
    argTypes:
    - struct lxc_container*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: do_clone_rename
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - ERROR
    - struct lxc_container*::rename
    linkageType: ''
    returnType: int
    signature: int do_clone_rename(struct lxc_container *c, char *newname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_clone_ephemeral
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:533,1
    - Dst: do_clone_rename
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:536,1
    - Dst: do_clone
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - c
    - task
    - flags
    - args
    argTypes:
    - struct lxc_container*
    - enum task
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 546
    functionName: do_clone_task
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 1
    functionsReached:
    - do_clone_ephemeral
    - do_clone_rename
    - do_clone
    linkageType: ''
    returnType: int
    signature: "int do_clone_task(struct lxc_container *c, enum task task, int flags,\n\t\t\t
      char **args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:554,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:555,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:556,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:557,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:558,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 564
    functionName: free_mnts
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_mnts(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: parse_mntsubopts
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:597,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:601,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:601,1
    - Dst: get_fssize
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:609,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 623
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - get_fssize
    - strlen
    - parse_mntsubopts
    - strncmp
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: add_mnt
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:631,1
    - Dst: lxc_string_split
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:635,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:639,1
    - Dst: lxc_array_len
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:643,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:645,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:647,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:647,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:648,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:650,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:650,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:651,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:654,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:656,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:658,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:659,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:661,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:668,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:670,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:670,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:671,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:671,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:674,1
    - Dst: free_mnts
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:678,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:679,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 2
    argNames:
    - mntstring
    - type
    argTypes:
    - char*
    - enum mnttype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 681
    functionName: parse_bind_mnt
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 0
    functionsReached:
    - printf
    - strncmp
    - lxc_array_len
    - strlen
    - lxc_free_array
    - free_mnts
    - construct_path
    - add_mnt
    - strdup
    - lxc_string_split
    linkageType: ''
    returnType: int
    signature: int parse_bind_mnt(char *mntstring, enum mnttype type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getsubopt
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:686,1
    - Dst: parse_bind_mnt
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:688,1
    - Dst: parse_ovl_mnt
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - subopts
    - keys
    - mntparameters
    argTypes:
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 683
    functionDepth: 5
    functionLinenumber: 683
    functionLinenumberEnd: 701
    functionName: parse_mntsubopts
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 1
    functionsReached:
    - parse_bind_mnt
    - getsubopt
    - parse_ovl_mnt
    linkageType: ''
    returnType: int
    signature: int parse_mntsubopts(char *subopts, char *const *keys, char *mntparameters)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_mnt
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:709,1
    - Dst: lxc_string_split
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:713,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:717,1
    - Dst: lxc_array_len
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:721,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:723,1
    - Dst: construct_path
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:725,1
    - Dst: printf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:727,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:732,1
    - Dst: free_mnts
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:736,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:737,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - mntstring
    - type
    argTypes:
    - char*
    - enum mnttype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 703
    functionDepth: 4
    functionLinenumber: 703
    functionLinenumberEnd: 739
    functionName: parse_ovl_mnt
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 1
    functionsReached:
    - printf
    - lxc_array_len
    - lxc_free_array
    - free_mnts
    - construct_path
    - add_mnt
    - lxc_string_split
    linkageType: ''
    returnType: int
    signature: int parse_ovl_mnt(char *mntstring, enum mnttype type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:760,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:769,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:769,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:770,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:776,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:776,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:776,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:777,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:781,1
    - Dst: umask
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:785,1
    - Dst: mkstemp
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:786,1
    - Dst: umask
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:787,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:791,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:792,1
    - Dst: chmod
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:796,1
    - Dst: fdopen
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:799,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:804,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:811,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:820,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:825,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:827,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_copy.c:830,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 4
    argNames:
    - oldname
    - newname
    - path
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 832
    functionName: mount_tmpfs
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_copy.c
    functionUses: 1
    functionsReached:
    - fcntl
    - fclose
    - close
    - strncmp
    - fprintf
    - free
    - mkstemp
    - strlen
    - snprintf
    - chmod
    - umask
    - ERROR
    - fdopen
    - malloc
    linkageType: ''
    returnType: char
    signature: "char *mount_tmpfs(const char *oldname, const char *newname,\n\t\t\t
      const char *path, struct lxc_arguments *arg)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_config_define_add
      Src: /src/lxc/src/lxc/tools/lxc_start.c:103,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 121
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_start.c
    functionUses: 0
    functionsReached:
    - lxc_config_define_add
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_start.c:129,1
    - Dst: creat
      Src: /src/lxc/src/lxc/tools/lxc_start.c:130,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:132,1
    - Dst: close
      Src: /src/lxc/src/lxc/tools/lxc_start.c:137,1
    - Dst: realpath
      Src: /src/lxc/src/lxc/tools/lxc_start.c:140,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - confpath
    - path
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: ensure_path
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_start.c
    functionUses: 0
    functionsReached:
    - close
    - creat
    - access
    - realpath
    - ERROR
    linkageType: ''
    returnType: int
    signature: int ensure_path(char **confpath, const char *path)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: lxc_list_init
      Src: /src/lxc/src/lxc/tools/lxc_start.c:166,1
    - Dst: lxc_caps_init
      Src: /src/lxc/src/lxc/tools/lxc_start.c:168,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:169,1
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_start.c:171,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:172,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_start.c:186,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:187,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_start.c:190,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:191,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:192,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_start.c:205,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:207,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:208,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_start.c:211,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_start.c:213,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:214,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_start.c:215,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:216,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_start.c:219,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:221,1
    - Dst: asprintf
      Src: /src/lxc/src/lxc/tools/lxc_start.c:227,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:229,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:230,1
    - Dst: access
      Src: /src/lxc/src/lxc/tools/lxc_start.c:234,1
    - Dst: free
      Src: /src/lxc/src/lxc/tools/lxc_start.c:235,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_start.c:239,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:241,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:242,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_start.c:251,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:252,1
    - Dst: struct lxc_container*::is_running
      Src: /src/lxc/src/lxc/tools/lxc_start.c:256,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:257,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:267,1
    - Dst: lxc_config_define_load
      Src: /src/lxc/src/lxc/tools/lxc_start.c:271,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/tools/lxc_start.c:274,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:275,1
    - Dst: ensure_path
      Src: /src/lxc/src/lxc/tools/lxc_start.c:280,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:281,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/lxc_start.c:286,1
    - Dst: struct lxc_container*::set_config_item
      Src: /src/lxc/src/lxc/tools/lxc_start.c:290,1
    - Dst: lxc_setup_shared_ns
      Src: /src/lxc/src/lxc/tools/lxc_start.c:293,1
    - Dst: struct lxc_container*::want_daemonize
      Src: /src/lxc/src/lxc/tools/lxc_start.c:297,1
    - Dst: struct lxc_container*::want_close_all_fds
      Src: /src/lxc/src/lxc/tools/lxc_start.c:300,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/lxc/tools/lxc_start.c:303,1
    - Dst: struct lxc_container*::start
      Src: /src/lxc/src/lxc/tools/lxc_start.c:305,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:307,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:310,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_start.c:312,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_start.c:316,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:317,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_start.c:321,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_start.c:322,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 118
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 153
    functionDepth: 6
    functionLinenumber: 153
    functionLinenumberEnd: 323
    functionName: lxc_start_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_start.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - struct lxc_container*::want_close_all_fds
    - exit
    - lxc_container_new
    - lxc_arguments_parse
    - ERROR
    - lxc_log_init
    - free
    - lxc_config_define_load
    - struct lxc_container*::want_daemonize
    - lxc_list_init
    - struct lxc_container*::load_config
    - struct lxc_container*::start
    - struct lxc_container*::may_control
    - strcmp
    - struct lxc_container*::set_config_item
    - lxc_caps_init
    - access
    - struct lxc_container*::is_running
    - lxc_container_put
    - ensure_path
    - lxc_setup_shared_ns
    - strdup
    - asprintf
    linkageType: ''
    returnType: int
    signature: int lxc_start_main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:45,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:46,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:55,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:56,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:58,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:60,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:61,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:65,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:67,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:68,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:69,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:70,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:73,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:75,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:76,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:77,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:81,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:82,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:83,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:84,1
    - Dst: struct lxc_container*::freeze
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:87,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:88,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:89,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:90,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:93,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_freeze.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 40
    functionDepth: 6
    functionLinenumber: 40
    functionLinenumberEnd: 96
    functionName: lxc_freeze_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_freeze.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::clear_config
    - exit
    - lxc_container_new
    - lxc_container_put
    - strdup
    - lxc_arguments_parse
    - struct lxc_container*::freeze
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_freeze_main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atol
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - args
    - c
    - arg
    argTypes:
    - struct lxc_arguments*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: my_parser
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_wait.c
    functionUses: 0
    functionsReached:
    - atol
    linkageType: ''
    returnType: int
    signature: int my_parser(struct lxc_arguments *args, int c, char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct lxc_arguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: my_checker
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_wait.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: int my_checker(const struct lxc_arguments *args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_arguments_parse
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:81,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:82,1
    - Dst: lxc_log_init
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:91,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:92,1
    - Dst: lxc_container_new
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:94,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:96,1
    - Dst: struct lxc_container*::may_control
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:98,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:99,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:100,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:101,1
    - Dst: struct lxc_container*::clear_config
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:105,1
    - Dst: struct lxc_container*::load_config
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:107,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:108,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:109,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:110,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:113,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:115,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:116,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:117,1
    - Dst: struct lxc_container*::wait
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:121,1
    - Dst: lxc_container_put
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:122,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:123,1
    - Dst: exit
      Src: /src/lxc/src/lxc/tools/lxc_wait.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 127
    functionName: lxc_wait_main
    functionSourceFile: /src/lxc/src/lxc/tools/lxc_wait.c
    functionUses: 0
    functionsReached:
    - struct lxc_container*::wait
    - struct lxc_container*::clear_config
    - exit
    - lxc_container_new
    - lxc_container_put
    - strdup
    - lxc_arguments_parse
    - struct lxc_container*::load_config
    - ERROR
    - lxc_log_init
    - struct lxc_container*::may_control
    linkageType: ''
    returnType: int
    signature: int lxc_wait_main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchrnul
      Src: /src/lxc/src/lxc/tools/include/getsubopt.c:29,1
    - Dst: memchr
      Src: /src/lxc/src/lxc/tools/include/getsubopt.c:32,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/tools/include/getsubopt.c:39,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - optionp
    - tokens
    - valuep
    argTypes:
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 60
    functionName: getsubopt
    functionSourceFile: /src/lxc/src/lxc/tools/include/getsubopt.c
    functionUses: 1
    functionsReached:
    - strchrnul
    - memchr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int getsubopt (char **optionp, char *const *tokens, char **valuep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitor_fifo_name
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:67,1
    - Dst: mknod
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:71,1
    - Dst: SYSINFO
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:73,1
    - Dst: open
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:77,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:79,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:80,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:89,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:91,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - mon
    argTypes:
    - struct lxc_monitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 97
    functionName: lxc_monitord_fifo_create
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - SYSDEBUG
    - fcntl
    - SYSINFO
    - close
    - lxc_monitor_fifo_name
    - mknod
    - SYSERROR
    - unlink
    - open
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_fifo_create(struct lxc_monitor *mon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitor_fifo_name
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:104,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mon
    argTypes:
    - struct lxc_monitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: lxc_monitord_fifo_delete
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - lxc_monitor_fifo_name
    - unlink
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_fifo_delete(struct lxc_monitor *mon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRIT
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:121,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - mon
    - fd
    argTypes:
    - struct lxc_monitor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: lxc_monitord_sockfd_remove
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - memmove
    - CRIT
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_sockfd_remove(struct lxc_monitor *mon, int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:140,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:141,1
    - Dst: lxc_monitord_sockfd_remove
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: lxc_monitord_sock_handler
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - lxc_monitord_sockfd_remove
    - lxc_read_nointr
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int lxc_monitord_sock_handler(int fd, uint32_t events, void *data,\n\t\t\t\t
      \    struct lxc_async_descr *descr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: accept4
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:162,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:164,1
    - Dst: getsockopt
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:168,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:169,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:173,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:174,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:181,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:184,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:193,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:198,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:203,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:208,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 212
    functionName: lxc_monitord_sock_accept
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - WARN
    - ERROR
    - close
    - SYSERROR
    - INFO
    - accept4
    - geteuid
    - lxc_mainloop_add_handler
    - realloc
    - getsockopt
    linkageType: ''
    returnType: int
    signature: "int lxc_monitord_sock_accept(int fd, uint32_t events, void *data,\n\t\t\t\t
      \   struct lxc_async_descr *descr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitor_sock_name
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:219,1
    - Dst: lxc_abstract_unix_open
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:222,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - mon
    argTypes:
    - struct lxc_monitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: lxc_monitord_sock_create
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - lxc_monitor_sock_name
    - SYSERROR
    - lxc_abstract_unix_open
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_sock_create(struct lxc_monitor *mon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitor_sock_name
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:236,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mon
    argTypes:
    - struct lxc_monitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: lxc_monitord_sock_delete
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - lxc_monitor_sock_name
    - unlink
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_sock_delete(struct lxc_monitor *mon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_monitord_fifo_create
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:249,1
    - Dst: lxc_monitord_sock_create
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mon
    argTypes:
    - struct lxc_monitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 4
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: lxc_monitord_create
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - lxc_monitord_sock_create
    - lxc_monitord_fifo_create
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_create(struct lxc_monitor *mon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_abstract_unix_close
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:258,1
    - Dst: lxc_monitord_sock_delete
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:259,1
    - Dst: lxc_monitord_fifo_delete
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:261,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:262,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mon
    argTypes:
    - struct lxc_monitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 268
    functionName: lxc_monitord_delete
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - lxc_monitord_sock_delete
    - lxc_monitord_fifo_delete
    - lxc_abstract_unix_close
    - close
    linkageType: ''
    returnType: void
    signature: void lxc_monitord_delete(struct lxc_monitor *mon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:277,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:279,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:284,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - events
    - data
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 291
    functionName: lxc_monitord_fifo_handler
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - lxc_write_nointr
    - lxc_read_nointr
    linkageType: ''
    returnType: int
    signature: "int lxc_monitord_fifo_handler(int fd, uint32_t events, void *data,\n\t\t\t\t
      \    struct lxc_async_descr *descr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:297,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:302,1
    - Dst: lxc_mainloop_add_handler
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:306,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - mon
    argTypes:
    - struct lxc_monitor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 293
    functionDepth: 4
    functionLinenumber: 293
    functionLinenumberEnd: 316
    functionName: lxc_monitord_mainloop_add
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - ERROR
    - lxc_mainloop_add_handler
    linkageType: ''
    returnType: int
    signature: int lxc_monitord_mainloop_add(struct lxc_monitor *mon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siglongjmp
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: lxc_monitord_sig_handler
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 0
    functionsReached:
    - siglongjmp
    linkageType: ''
    returnType: void
    signature: void lxc_monitord_sig_handler(int sig)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:332,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:343,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:345,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:346,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:351,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:352,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:358,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:363,1
    - Dst: sigfillset
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:366,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:367,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:368,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:369,1
    - Dst: sigdelset
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:370,1
    - Dst: pthread_sigmask
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:371,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:372,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:373,1
    - Dst: signal
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:376,1
    - Dst: signal
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:377,1
    - Dst: signal
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:378,1
    - Dst: signal
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:379,1
    - Dst: sigsetjmp
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:381,1
    - Dst: memset
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:386,1
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:388,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:389,1
    - Dst: lxc_monitord_create
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:394,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:405,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:408,1
    - Dst: lxc_monitord_mainloop_add
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:411,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:412,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:416,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:417,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:420,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:422,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:427,1
    - Dst: NOTICE
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:432,1
    - Dst: lxc_mainloop_close
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:442,1
    - Dst: lxc_monitord_delete
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:445,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_monitord.c:447,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 448
    functionName: main
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_monitord.c
    functionUses: 1
    functionsReached:
    - lxc_safe_int
    - close
    - fprintf
    - sigsetjmp
    - sigdelset
    - exit
    - lxc_mainloop
    - lxc_global_config_value
    - lxc_mainloop_open
    - pthread_sigmask
    - sigfillset
    - memset
    - NOTICE
    - SYSERROR
    - lxc_mainloop_close
    - lxc_monitord_delete
    - signal
    - lxc_write_nointr
    - lxc_raw_getpid
    - strcmp
    - lxc_monitord_mainloop_add
    - lxc_monitord_create
    - ERROR
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: usernic_debug_stream
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usernic_debug_stream(stream, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: usernic_error
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usernic_error(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - __ret__
    - ','
    - __errno__
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: cmd_error_errno
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmd_error_errno(__ret__, __errno__, format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:65,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:66,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:68,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:69,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:71,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:72,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:73,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:76,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fail
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: usage
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 3
    functionsReached:
    - _exit
    - fprintf
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn usage(bool fail)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:87,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:89,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:98,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:100,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 105
    functionName: open_and_lock
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - CMD_SYSERROR
    - fcntl
    - move_fd
    - open
    linkageType: ''
    returnType: int
    signature: int open_and_lock(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:115,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:119,1
    - Dst: getpwuid_r
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:123,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:123,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:126,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:128,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:128,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    functionName: get_username
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - usernic_error
    - getpwuid_r
    - sysconf
    - getuid
    - CMD_SYSERROR
    - strdup
    - malloc
    linkageType: ''
    returnType: char
    signature: char *get_username(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getgroups
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:147,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:149,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:156,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:158,1
    - Dst: getgroups
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:162,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:164,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:168,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:170,1
    - Dst: sysconf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:174,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:178,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:180,1
    - Dst: getgrgid_r
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:185,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:190,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:194,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:196,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:197,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:207,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:209,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:214,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 215
    functionName: get_groupnames
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - getgrgid_r
    - usernic_error
    - strerror
    - move_ptr
    - sysconf
    - getgroups
    - realloc
    - CMD_SYSERROR
    - zalloc
    - strdup
    - malloc
    linkageType: ''
    returnType: char
    signature: char **get_groupnames(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - groupnames
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: name_is_in_groupnames
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool name_is_in_groupnames(char *name, char **groupnames)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:241,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:245,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:247,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:251,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:267,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - head
    - name
    - n
    argTypes:
    - struct alloted_s**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 268
    functionName: append_alloted
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - usernic_error
    - move_ptr
    - CMD_SYSERROR
    - zalloc
    - strdup
    linkageType: ''
    returnType: struct alloted_s
    signature: struct alloted_s *append_alloted(struct alloted_s **head, char *name,
      int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:280,1
    - Dst: free
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct alloted_s**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 284
    functionName: free_alloted
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_alloted(struct alloted_s **head)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:306,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:308,1
    - Dst: get_groupnames
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:312,1
    - Dst: getline
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:313,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:314,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:319,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:322,1
    - Dst: name_is_in_groupnames
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:326,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:330,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:333,1
    - Dst: append_alloted
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:346,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 4
    argNames:
    - me
    - intype
    - link
    - alloted
    argTypes:
    - char*
    - char*
    - char*
    - struct alloted_s**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 356
    functionName: get_alloted
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - get_groupnames
    - name_is_in_groupnames
    - strequal
    - append_alloted
    - is_empty_string
    - sscanf
    - getline
    - CMD_SYSERROR
    - fopen
    linkageType: ''
    returnType: int
    signature: "int get_alloted(char *me, char *intype, char *link,\n\t\t       struct
      alloted_s **alloted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: get_eol
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_eol(char *s, char *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isblank
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 372
    functionName: get_eow
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - isblank
    linkageType: ''
    returnType: char
    signature: char *get_eow(char *s, char *e)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_eol
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:388,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:396,1
    - Dst: get_eow
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:400,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:405,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:405,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:408,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:412,1
    - Dst: get_eow
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:416,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:421,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:421,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:425,1
    - Dst: get_eow
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:429,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:434,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:434,1
    - Dst: isblank
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:438,1
    - Dst: get_eow
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:442,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:452,1
    - Dst: lxc_nic_exists
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:454,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:456,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 9
    argNames:
    - buf_start
    - buf_end
    - name
    - net_type
    - net_link
    - net_dev
    - owner
    - found
    - keep
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - bool*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 466
    functionName: find_line
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - get_eow
    - strcmp
    - memcpy
    - strncmp
    - strlen
    - lxc_nic_exists
    - isblank
    - get_eol
    linkageType: ''
    returnType: char
    signature: "char *find_line(char *buf_start, char *buf_end, char *name,\n\t\t
      \      char *net_type, char *net_link, char *net_dev,\n\t\t       bool *owner,
      bool *found, bool *keep)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_veth_create
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:472,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:474,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:475,1
    - Dst: setup_private_host_hw_addr
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:483,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:485,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:486,1
    - Dst: netdev_set_flag
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - veth1
    - veth2
    - pid
    - mtu
    argTypes:
    - char*
    - char*
    - pid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 468
    functionDepth: 5
    functionLinenumber: 468
    functionLinenumberEnd: 490
    functionName: instantiate_veth
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - setup_private_host_hw_addr
    - ret_errno
    - lxc_veth_create
    - CMD_SYSERROR
    - netdev_set_flag
    linkageType: ''
    returnType: int
    signature: int instantiate_veth(char *veth1, char *veth2, pid_t pid, unsigned
      int mtu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:498,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:500,1
    - Dst: netdev_get_mtu
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:504,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 511
    functionName: get_mtu
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 3
    functionsReached:
    - netdev_get_mtu
    - if_nametoindex
    - usernic_error
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_mtu(char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:519,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:521,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:525,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:527,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:531,1
    - Dst: get_mtu
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:532,1
    - Dst: instantiate_veth
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:535,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:537,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:541,1
    - Dst: lxc_netdev_set_mtu
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:543,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:545,1
    - Dst: lxc_bridge_attach
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:552,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:554,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:559,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:561,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:568,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - nic
    - br
    - pid
    - cnic
    argTypes:
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 513
    functionDepth: 6
    functionLinenumber: 513
    functionLinenumberEnd: 570
    functionName: create_nic
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - strcmp
    - usernic_error
    - snprintf
    - lxc_netdev_delete_by_name
    - get_mtu
    - instantiate_veth
    - strdup
    - lxc_netdev_set_mtu
    - lxc_bridge_attach
    linkageType: ''
    returnType: int
    signature: int create_nic(char *nic, char *br, int pid, char **cnic)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fd_to_buf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:589,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:591,1
    - Dst: lseek
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:594,1
    - Dst: find_line
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:602,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:607,1
    - Dst: get_eol
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:616,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:631,1
    - Dst: ftruncate
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 6
    argNames:
    - fd
    - name
    - net_type
    - net_link
    - net_dev
    - found_nicname
    argTypes:
    - int
    - char*
    - char*
    - char*
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 638
    functionName: cull_entries
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ftruncate
    - fd_to_buf
    - find_line
    - get_eol
    - realloc
    - CMD_SYSERROR
    - lseek
    linkageType: ''
    returnType: bool
    signature: "bool cull_entries(int fd, char *name, char *net_type, char *net_link,\n\t\t\t
      char *net_dev, bool *found_nicname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_line
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:647,1
    - Dst: get_eol
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - buf
    - len
    - name
    - net_type
    - net_link
    argTypes:
    - char*
    - off_t
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 658
    functionName: count_entries
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - get_eol
    - find_line
    linkageType: ''
    returnType: int
    signature: int count_entries(char *buf, off_t len, char *name, char *net_type,
      char *net_link)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: cull_entries
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:675,1
    - Dst: fd_to_buf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:682,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:684,1
    - Dst: lseek
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:687,1
    - Dst: count_entries
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:696,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:708,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:717,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:719,1
    - Dst: lxc_ifname_alnum_case_sensitive
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:723,1
    - Dst: create_nic
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:726,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:728,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:750,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:750,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:750,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:750,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:751,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:753,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:757,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:759,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:760,1
    - Dst: lxc_pwrite_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:765,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:767,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:769,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:770,1
    - Dst: ftruncate
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:775,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:777,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:779,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:780,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:785,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 7
    argNames:
    - fd
    - names
    - pid
    - intype
    - br
    - allowed
    - cnic
    argTypes:
    - int
    - struct alloted_s*
    - int
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 661
    functionDepth: 7
    functionLinenumber: 661
    functionLinenumberEnd: 786
    functionName: get_nic_if_avail
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - usernic_error
    - ftruncate
    - lxc_pwrite_nointr
    - fd_to_buf
    - strlen
    - snprintf
    - getuid
    - strdup
    - count_entries
    - cull_entries
    - lxc_ifname_alnum_case_sensitive
    - lxc_netdev_delete_by_name
    - CMD_SYSERROR
    - create_nic
    - lseek
    - malloc
    linkageType: ''
    returnType: char
    signature: "char *get_nic_if_avail(int fd, struct alloted_s *names, int pid,\n\t\t\t
      \     char *intype, char *br, int allowed, char **cnic)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:794,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:808,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - fnam
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 818
    functionName: create_db_dir
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - CMD_SYSERROR
    - mkdir
    - must_copy_string
    linkageType: ''
    returnType: bool
    signature: bool create_db_dir(char *fnam)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:830,1
    - Dst: lxc_preserve_ns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:832,1
    - Dst: cmd_error_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:834,1
    - Dst: lxc_preserve_ns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:836,1
    - Dst: cmd_error_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:838,1
    - Dst: getresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:840,1
    - Dst: cmd_error_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:842,1
    - Dst: setns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:844,1
    - Dst: cmd_error_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:846,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:848,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:850,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:860,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:862,1
    - Dst: lxc_netdev_rename_by_name
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:871,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:873,1
    - Dst: if_indextoname
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:878,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:879,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:886,1
    - Dst: cmd_error_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:888,1
    - Dst: setns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:892,1
    - Dst: cmd_error_errno
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:894,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:900,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - pid
    - oldname
    - newname
    - container_veth_ifidx
    argTypes:
    - int
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 820
    functionDepth: 6
    functionLinenumber: 820
    functionLinenumberEnd: 901
    functionName: lxc_secure_rename_in_ns
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - lxc_netdev_rename_by_name
    - cmd_error_errno
    - lxc_preserve_ns
    - if_indextoname
    - if_nametoindex
    - setns
    - strdup
    - setresuid
    - CMD_SYSERROR
    - getresuid
    - lxc_raw_getpid
    linkageType: ''
    returnType: char
    signature: "char *lxc_secure_rename_in_ns(int pid, char *oldname, char *newname,\n\t\t\t\t
      \    int *container_veth_ifidx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:913,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:915,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:919,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:921,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:926,1
    - Dst: access
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:930,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:934,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:937,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:939,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 945
    functionName: may_access_netns
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - access
    - snprintf
    - setresuid
    - CMD_SYSERROR
    - getresuid
    linkageType: ''
    returnType: bool
    signature: bool may_access_netns(int pid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:969,1
    - Dst: lxc_preserve_ns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:971,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:973,1
    - Dst: getresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:977,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:979,1
    - Dst: setns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:983,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:985,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:989,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:991,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1005,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1010,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1012,1
    - Dst: setns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1017,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1019,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1025,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - netns_fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 962
    functionDepth: 6
    functionLinenumber: 962
    functionLinenumberEnd: 1027
    functionName: is_privileged_over_netns
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - lxc_preserve_ns
    - usernic_error
    - close
    - setns
    - setresuid
    - lxc_netdev_delete_by_name
    - CMD_SYSERROR
    - getresuid
    - lxc_raw_getpid
    linkageType: ''
    returnType: bool
    signature: bool is_privileged_over_netns(int netns_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1033,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - args
    - argc
    argTypes:
    - struct user_nic_args*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1039
    functionName: validate_args
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int validate_args(const struct user_nic_args *args, int argc)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1051,1
    - Dst: memset
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1053,1
    - Dst: validate_args
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1064,1
    - Dst: usage
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1066,1
    - Dst: clearenv
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1069,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1071,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1072,1
    - Dst: setenv
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1075,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1077,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1078,1
    - Dst: get_username
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1081,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1083,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1084,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1088,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1090,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1091,1
    - Dst: open
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1099,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1101,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1102,1
    - Dst: fhas_fs_type
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1105,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1106,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1107,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1108,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1111,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1113,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1114,1
    - Dst: open
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1118,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1120,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1121,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1122,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1125,1
    - Dst: create_db_dir
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1129,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1130,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1133,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1135,1
    - Dst: open_and_lock
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1138,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1140,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1143,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1145,1
    - Dst: may_access_netns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1149,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1150,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1151,1
    - Dst: is_privileged_over_netns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1156,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1157,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1159,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1160,1
    - Dst: get_alloted
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1164,1
    - Dst: is_ovs_bridge
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1170,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1171,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1172,1
    - Dst: free_alloted
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1173,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1174,1
    - Dst: cull_entries
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1184,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1186,1
    - Dst: free_alloted
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1187,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1190,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1191,1
    - Dst: lxc_ovs_delete_port
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1194,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1196,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1197,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1200,1
    - Dst: get_nic_if_avail
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1204,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1207,1
    - Dst: free_alloted
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1208,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1211,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1212,1
    - Dst: lxc_secure_rename_in_ns
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1216,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1219,1
    - Dst: lxc_netdev_delete_by_name
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1221,1
    - Dst: usernic_error
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1223,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1225,1
    - Dst: if_nametoindex
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1228,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1230,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1231,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1237,1
    - Dst: fflush
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1240,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_user_nic.c:1241,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 136
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1041
    functionDepth: 8
    functionLinenumber: 1041
    functionLinenumberEnd: 1242
    functionName: main
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    functionUses: 1
    functionsReached:
    - usage
    - fhas_fs_type
    - is_ovs_bridge
    - lxc_safe_int
    - close
    - fprintf
    - may_access_netns
    - setenv
    - usernic_error
    - fflush
    - snprintf
    - cull_entries
    - create_db_dir
    - open
    - memset
    - get_nic_if_avail
    - validate_args
    - if_nametoindex
    - open_and_lock
    - clearenv
    - get_alloted
    - free_alloted
    - lxc_secure_rename_in_ns
    - _exit
    - lxc_ovs_delete_port
    - lxc_netdev_delete_by_name
    - CMD_SYSERROR
    - get_username
    - is_privileged_over_netns
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: QUOTE
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUOTE(macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: QUOTEVAL
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUOTEVAL(macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:66,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - longopts
    argTypes:
    - struct option[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: print_usage_exit
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_init.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn print_usage_exit(const struct option longopts[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:73,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: print_version_exit
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_init.c
    functionUses: 1
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: __noreturn
    signature: __noreturn print_version_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: print_help
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_init.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_help(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:105,1
    - Dst: remove_trailing_slashes
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:120,1
    - Dst: print_usage_exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:124,1
    - Dst: print_version_exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:126,1
    - Dst: print_help
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:128,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:129,1
    - Dst: print_help
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:131,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:132,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:144,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:149,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - args
    - argc
    - argv
    argTypes:
    - struct arguments*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 154
    functionName: arguments_parse
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_init.c
    functionUses: 21
    functionsReached:
    - print_usage_exit
    - print_help
    - fprintf
    - exit
    - print_version_exit
    - lxc_global_config_value
    - getopt_long
    - remove_trailing_slashes
    linkageType: ''
    returnType: int
    signature: "int arguments_parse(struct arguments *args, int argc,\n\t\t\t   char
      *const argv[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arguments_parse
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:158,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:159,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:163,1
    - Dst: exit
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:164,1
    - Dst: lxc_container_init
      Src: /src/lxc/src/lxc/cmd/lxc_init.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_init.c
    functionUses: 1
    functionsReached:
    - lxc_container_init
    - fprintf
    - exit
    - arguments_parse
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:42,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:43,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:44,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:45,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:46,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:47,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:48,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:49,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:50,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:51,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:52,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:53,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:54,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:55,1
    - Dst: printf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: usage
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:66,1
    - Dst: CMD_SYSINFO
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:68,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:72,1
    - Dst: fcntl
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:74,1
    - Dst: CMD_SYSINFO
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:76,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:77,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:81,1
    - Dst: dup2
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:83,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - tty
    - which
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 86
    functionName: opentty
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached:
    - fcntl
    - close
    - CMD_SYSINFO
    - dup2
    - open
    linkageType: ''
    returnType: void
    signature: void opentty(const char *tty, int which)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:94,1
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:97,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:100,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:102,1
    - Dst: detect_shared_rootfs
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:106,1
    - Dst: mount
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:107,1
    - Dst: CMD_SYSINFO
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:109,1
    - Dst: execvp
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:114,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - vargv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 117
    functionName: do_child
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached:
    - lxc_switch_uid_gid
    - lxc_drop_groups
    - unshare
    - CMD_SYSINFO
    - detect_shared_rootfs
    - CMD_SYSERROR
    - execvp
    - mount
    linkageType: ''
    returnType: int
    signature: int do_child(void *vargv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:125,1
    - Dst: list_add_tail
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - host_id
    - ns_id
    - range
    - which
    argTypes:
    - long
    - long
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: add_map_entry
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached:
    - zalloc
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: int add_map_entry(long host_id, long ns_id, long range, int which)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:152,1
    - Dst: add_map_entry
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 1
    argNames:
    - map
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 174
    functionName: parse_map
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached:
    - sscanf
    - add_map_entry
    linkageType: ''
    returnType: int
    signature: int parse_map(char *map)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:194,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:198,1
    - Dst: getline
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:199,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:200,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:203,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:207,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:211,1
    - Dst: lxc_safe_ulong
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:214,1
    - Dst: lxc_safe_ulong
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:218,1
    - Dst: add_map_entry
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:222,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 3
    argNames:
    - fnam
    - which
    - user
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 227
    functionName: read_default_map
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - strchr
    - getline
    - add_map_entry
    - lxc_safe_ulong
    - fopen
    linkageType: ''
    returnType: int
    signature: int read_default_map(char *fnam, int which, char *user)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:237,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:241,1
    - Dst: getpwuid_r
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:245,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:245,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:248,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:250,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:250,1
    - Dst: read_default_map
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:254,1
    - Dst: read_default_map
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 263
    functionName: find_default_map
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached:
    - getpwuid_r
    - sysconf
    - getuid
    - read_default_map
    - CMD_SYSERROR
    - malloc
    linkageType: ''
    returnType: int
    signature: int find_default_map(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - id
    - map
    argTypes:
    - unsigned long
    - struct id_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 274
    functionName: is_in_ns_range
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_in_ns_range(unsigned long id, struct id_map *map)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:282,1
    - Dst: is_in_ns_range
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:284,1
    - Dst: is_in_ns_range
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:287,1
    - Dst: add_map_entry
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:292,1
    - Dst: getgid
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:292,1
    - Dst: add_map_entry
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:295,1
    - Dst: getuid
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 299
    functionName: do_map_self
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 0
    functionsReached:
    - getgid
    - getuid
    - add_map_entry
    - list_for_each_entry
    - is_in_ns_range
    linkageType: ''
    returnType: bool
    signature: bool do_map_self(void)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:314,1
    - Dst: readlink
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:315,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:317,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:318,1
    - Dst: readlink
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:321,1
    - Dst: CMD_SYSINFO
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:323,1
    - Dst: readlink
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:327,1
    - Dst: CMD_SYSINFO
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:329,1
    - Dst: getopt
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:334,1
    - Dst: parse_map
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:337,1
    - Dst: usage
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:339,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:340,1
    - Dst: usage
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:344,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:345,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:350,1
    - Dst: lxc_safe_uint
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:354,1
    - Dst: usage
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:358,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:359,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:363,1
    - Dst: find_default_map
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:364,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:366,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:367,1
    - Dst: do_map_self
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:374,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:375,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:376,1
    - Dst: pipe2
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:385,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:387,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:388,1
    - Dst: pipe2
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:391,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:393,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:394,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:395,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:396,1
    - Dst: fork
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:399,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:401,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:402,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:403,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:404,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:405,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:409,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:410,1
    - Dst: opentty
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:412,1
    - Dst: opentty
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:413,1
    - Dst: opentty
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:414,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:416,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:418,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:419,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:420,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:421,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:425,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:427,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:429,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:430,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:431,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:434,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:436,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:438,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:439,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:440,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:443,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:444,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:447,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:448,1
    - Dst: do_child
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:451,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:453,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:455,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:458,1
    - Dst: close
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:459,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:461,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:463,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:464,1
    - Dst: lxc_map_ids
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:469,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:471,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:473,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:475,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:476,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:479,1
    - Dst: CMD_SYSERROR
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:481,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:482,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:485,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/cmd/lxc_usernsexec.c:485,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 146
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 486
    functionName: main
    functionSourceFile: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
    functionUses: 1
    functionsReached:
    - usage
    - lxc_safe_uint
    - fprintf
    - close
    - CMD_SYSINFO
    - do_child
    - opentty
    - parse_map
    - waitpid
    - WEXITSTATUS
    - readlink
    - lxc_write_nointr
    - getopt
    - do_map_self
    - unshare
    - pipe2
    - isatty
    - _exit
    - lxc_read_nointr
    - lxc_map_ids
    - find_default_map
    - CMD_SYSERROR
    - fork
    - list_empty
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - pid
    argTypes:
    - struct lsm_ops*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: nop_process_label_get
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *nop_process_label_get(struct lsm_ops *ops, pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - fd_pid
    argTypes:
    - struct lsm_ops*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: nop_process_label_get_at
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *nop_process_label_get_at(struct lsm_ops *ops, int fd_pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ops
    - label
    - conf
    - on_exec
    argTypes:
    - struct lsm_ops*
    - char*
    - struct lxc_conf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: nop_process_label_set
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int nop_process_label_set(struct lsm_ops *ops, const char *label,
      struct lxc_conf *conf,\n\t\t\t\t bool on_exec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct lsm_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: nop_enabled
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nop_enabled(struct lsm_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - label
    argTypes:
    - struct lsm_ops*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: nop_keyring_label_set
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nop_keyring_label_set(struct lsm_ops *ops, const char *label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: nop_prepare
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nop_prepare(struct lsm_ops *ops, struct lxc_conf *conf, const char
      *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: nop_cleanup
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nop_cleanup(struct lsm_ops *ops, struct lxc_conf *conf, const
      char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ops
    - pid
    - on_exec
    argTypes:
    - struct lsm_ops*
    - pid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: nop_process_label_fd_get
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nop_process_label_fd_get(struct lsm_ops *ops, pid_t pid, bool on_exec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ops
    - label_fd
    - label
    - on_exec
    argTypes:
    - struct lsm_ops*
    - int
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: nop_process_label_set_at
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nop_process_label_set_at(struct lsm_ops *ops, int label_fd, const
      char *label, bool on_exec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: lsm_nop_ops_init
    functionSourceFile: /src/lxc/src/lxc/lsm/nop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct lsm_ops
    signature: struct lsm_ops *lsm_nop_ops_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lsm_apparmor_ops_init
      Src: /src/lxc/src/lxc/lsm/lsm.c:27,1
    - Dst: lsm_selinux_ops_init
      Src: /src/lxc/src/lxc/lsm/lsm.c:32,1
    - Dst: lsm_nop_ops_init
      Src: /src/lxc/src/lxc/lsm/lsm.c:36,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lsm/lsm.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 40
    functionName: lsm_init_static
    functionSourceFile: /src/lxc/src/lxc/lsm/lsm.c
    functionUses: 2
    functionsReached:
    - lsm_selinux_ops_init
    - INFO
    - lsm_apparmor_ops_init
    - lsm_nop_ops_init
    linkageType: ''
    returnType: struct lsm_ops
    signature: struct lsm_ops *lsm_init_static(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/lxc/src/lxc/lsm/apparmor.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct lsm_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 367
    functionName: load_mount_features_enabled
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - stat
    linkageType: ''
    returnType: void
    signature: void load_mount_features_enabled(struct lsm_ops *ops)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen_cloexec
      Src: /src/lxc/src/lxc/lsm/apparmor.c:376,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:380,1
    - Dst: load_mount_features_enabled
      Src: /src/lxc/src/lxc/lsm/apparmor.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct lsm_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: apparmor_enabled
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - load_mount_features_enabled
    - fopen_cloexec
    - fscanf
    linkageType: ''
    returnType: int
    signature: int apparmor_enabled(struct lsm_ops *ops)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lsm/apparmor.c:396,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:399,1
    - Dst: open
      Src: /src/lxc/src/lxc/lsm/apparmor.c:403,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:410,1
    - Dst: open
      Src: /src/lxc/src/lxc/lsm/apparmor.c:414,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/apparmor.c:419,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 4
    argNames:
    - ops
    - pid
    - o_flags
    - on_exec
    argTypes:
    - struct lsm_ops*
    - pid_t
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 420
    functionName: __apparmor_process_label_open
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - TRACE
    - open
    - log_error_errno
    - snprintf
    linkageType: ''
    returnType: int
    signature: int __apparmor_process_label_open(struct lsm_ops *ops, pid_t pid, int
      o_flags, bool on_exec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __apparmor_process_label_open
      Src: /src/lxc/src/lxc/lsm/apparmor.c:430,1
    - Dst: fd_to_buf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:434,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/lsm/apparmor.c:441,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/lsm/apparmor.c:444,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/lsm/apparmor.c:447,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lsm/apparmor.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ops
    - pid
    argTypes:
    - struct lsm_ops*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 452
    functionName: apparmor_process_label_get
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - memcpy
    - move_ptr
    - fd_to_buf
    - __apparmor_process_label_open
    - strcspn
    - malloc
    linkageType: ''
    returnType: char
    signature: char *apparmor_process_label_get(struct lsm_ops *ops, pid_t pid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/lsm/apparmor.c:460,1
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/lsm/apparmor.c:462,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/apparmor.c:464,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/lsm/apparmor.c:466,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lsm/apparmor.c:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ops
    - fd_pid
    argTypes:
    - struct lsm_ops*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 470
    functionName: apparmor_process_label_get_at
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - strcspn
    - move_ptr
    - read_file_at
    - log_error_errno
    linkageType: ''
    returnType: char
    signature: char *apparmor_process_label_get_at(struct lsm_ops *ops, int fd_pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apparmor_process_label_get
      Src: /src/lxc/src/lxc/lsm/apparmor.c:478,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/lsm/apparmor.c:478,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:480,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct lsm_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 484
    functionName: apparmor_am_unconfined
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - free
    - apparmor_process_label_get
    - strequal
    - lxc_raw_getpid
    linkageType: ''
    returnType: bool
    signature: bool apparmor_am_unconfined(struct lsm_ops *ops)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:490,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - curlabel
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 495
    functionName: aa_needs_transition
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool aa_needs_transition(char *curlabel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - num
    argTypes:
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 507
    functionName: uint64hex
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void uint64hex(char *buf, uint64_t num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:511,1
    - Dst: fnv_64a_buf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:514,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lsm/apparmor.c:515,1
    - Dst: uint64hex
      Src: /src/lxc/src/lxc/lsm/apparmor.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 520
    functionName: shorten_apparmor_name
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - must_realloc
    - uint64hex
    - strlen
    - fnv_64a_buf
    linkageType: ''
    returnType: char
    signature: char *shorten_apparmor_name(char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: sanitize_path
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sanitize_path(char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctname
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: apparmor_dir
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - must_make_path
    linkageType: ''
    returnType: char
    signature: char *apparmor_dir(const char *ctname, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shorten_apparmor_name
      Src: /src/lxc/src/lxc/lsm/apparmor.c:540,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/lsm/apparmor.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctname
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: apparmor_profile_full
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - shorten_apparmor_name
    - must_concat
    linkageType: ''
    returnType: char
    signature: char *apparmor_profile_full(const char *ctname, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apparmor_profile_full
      Src: /src/lxc/src/lxc/lsm/apparmor.c:548,1
    - Dst: sanitize_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctname
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 552
    functionName: apparmor_namespace
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - sanitize_path
    - apparmor_profile_full
    linkageType: ''
    returnType: char
    signature: char *apparmor_namespace(const char *ctname, const char *lxcpath)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_popen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:567,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:569,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:573,1
    - Dst: lxc_pclose
      Src: /src/lxc/src/lxc/lsm/apparmor.c:575,1
    - Dst: lxc_pclose
      Src: /src/lxc/src/lxc/lsm/apparmor.c:583,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:585,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:589,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct lsm_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 601
    functionName: check_apparmor_parser_version
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - lxc_pclose
    - fscanf
    - lxc_popen
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool check_apparmor_parser_version(struct lsm_ops *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/lsm/apparmor.c:609,1
    - Dst: lxc_read_nointr
      Src: /src/lxc/src/lxc/lsm/apparmor.c:613,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 616
    functionName: file_is_yes
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - strnequal
    - lxc_read_nointr
    - open
    linkageType: ''
    returnType: bool
    signature: bool file_is_yes(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_is_yes
      Src: /src/lxc/src/lxc/lsm/apparmor.c:623,1
    - Dst: fopen_cloexec
      Src: /src/lxc/src/lxc/lsm/apparmor.c:626,1
    - Dst: fscanf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:630,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/lsm/apparmor.c:631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 636
    functionName: apparmor_can_stack
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - file_is_yes
    - fopen_cloexec
    - fclose
    - fscanf
    linkageType: ''
    returnType: bool
    signature: bool apparmor_can_stack(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/lsm/apparmor.c:646,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/lsm/apparmor.c:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - buf
    - bufsz
    - data
    - size
    - append_newline
    argTypes:
    - char**
    - size_t*
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 653
    functionName: must_append_sized_full
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - memcpy
    - must_realloc
    linkageType: ''
    returnType: void
    signature: "void must_append_sized_full(char **buf, size_t *bufsz, const char
      *data,\n\t\t\t\t   size_t size, bool append_newline)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: must_append_sized_full
      Src: /src/lxc/src/lxc/lsm/apparmor.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - bufsz
    - data
    - size
    argTypes:
    - char**
    - size_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: must_append_sized
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - must_append_sized_full
    linkageType: ''
    returnType: void
    signature: void must_append_sized(char **buf, size_t *bufsz, const char *data,
      size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/lsm/apparmor.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 663
    functionName: is_privileged
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: bool
    signature: bool is_privileged(struct lxc_conf *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:696,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:699,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:700,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - profile
    - size
    - rule
    argTypes:
    - char**
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 694
    functionDepth: 3
    functionLinenumber: 694
    functionLinenumberEnd: 702
    functionName: append_remount_rule
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - strlen
    - must_append_sized
    linkageType: ''
    returnType: void
    signature: void append_remount_rule(char **profile, size_t *size, const char *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:712,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/lsm/apparmor.c:714,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:716,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/lsm/apparmor.c:728,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/lsm/apparmor.c:733,1
    - Dst: append_remount_rule
      Src: /src/lxc/src/lxc/lsm/apparmor.c:734,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/lsm/apparmor.c:737,1
    - Dst: append_remount_rule
      Src: /src/lxc/src/lxc/lsm/apparmor.c:738,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/lsm/apparmor.c:739,1
    - Dst: append_remount_rule
      Src: /src/lxc/src/lxc/lsm/apparmor.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - profile
    - size
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 742
    functionName: append_all_remount_rules
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - must_append_sized
    - append_remount_rule
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void append_all_remount_rules(char **profile, size_t *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: apparmor_profile_full
      Src: /src/lxc/src/lxc/lsm/apparmor.c:750,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/lsm/apparmor.c:752,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:756,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:758,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:759,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:762,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:763,1
    - Dst: append_all_remount_rules
      Src: /src/lxc/src/lxc/lsm/apparmor.c:765,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:768,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:769,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/lsm/apparmor.c:771,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:772,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:773,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:780,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:781,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/lsm/apparmor.c:784,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:787,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:789,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:789,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:790,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:792,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:793,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:797,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:798,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/lsm/apparmor.c:803,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:805,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:805,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:806,1
    - Dst: is_privileged
      Src: /src/lxc/src/lxc/lsm/apparmor.c:810,1
    - Dst: am_host_unpriv
      Src: /src/lxc/src/lxc/lsm/apparmor.c:810,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:811,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:812,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/lsm/apparmor.c:814,1
    - Dst: must_append_sized_full
      Src: /src/lxc/src/lxc/lsm/apparmor.c:817,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:817,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:821,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:823,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 744
    functionDepth: 5
    functionLinenumber: 744
    functionLinenumberEnd: 826
    functionName: get_apparmor_profile_content
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - free
    - must_concat
    - strlen
    - file_exists
    - is_privileged
    - apparmor_profile_full
    - list_for_each_entry
    - must_append_sized
    - STRARRAYLEN
    - must_append_sized_full
    - am_host_unpriv
    - append_all_remount_rules
    linkageType: ''
    returnType: char
    signature: char *get_apparmor_profile_content(struct lsm_ops *ops, struct lxc_conf
      *conf, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apparmor_namespace
      Src: /src/lxc/src/lxc/lsm/apparmor.c:839,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:840,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctname
    - lxcpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 835
    functionDepth: 4
    functionLinenumber: 835
    functionLinenumberEnd: 844
    functionName: make_apparmor_profile_path
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - free
    - apparmor_namespace
    - must_make_path
    linkageType: ''
    returnType: char
    signature: char *make_apparmor_profile_path(const char *ctname, const char *lxcpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_apparmor_namespace_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:864,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/lsm/apparmor.c:866,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:867,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:868,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 874
    functionName: make_apparmor_namespace
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - free
    - SYSERROR
    - make_apparmor_namespace_path
    - mkdir
    linkageType: ''
    returnType: bool
    signature: bool make_apparmor_namespace(struct lsm_ops *ops, struct lxc_conf *conf,
      const char *lxcpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_apparmor_namespace_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:880,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/lsm/apparmor.c:881,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:882,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conf
    - lxcpath
    argTypes:
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 884
    functionName: remove_apparmor_namespace
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - free
    - rmdir
    - make_apparmor_namespace_path
    - SYSERROR
    linkageType: ''
    returnType: void
    signature: void remove_apparmor_namespace(struct lxc_conf *conf, const char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/lsm/apparmor.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 899
    functionName: apparmor_parser_exec
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int apparmor_parser_exec(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_apparmor_profile_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:909,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/lsm/apparmor.c:912,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:914,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - command
    - conf
    - lxcpath
    argTypes:
    - char
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 901
    functionDepth: 5
    functionLinenumber: 901
    functionLinenumberEnd: 921
    functionName: run_apparmor_parser
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - ERROR
    - run_command
    - make_apparmor_profile_path
    - free
    linkageType: ''
    returnType: int
    signature: "int run_apparmor_parser(char command,\n                               struct
      lxc_conf *conf,\n                               const char *lxcpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_apparmor_profile_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:931,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/lsm/apparmor.c:932,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:933,1
    - Dst: apparmor_dir
      Src: /src/lxc/src/lxc/lsm/apparmor.c:936,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/lsm/apparmor.c:937,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - conf
    - lxcpath
    argTypes:
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 923
    functionDepth: 5
    functionLinenumber: 923
    functionLinenumberEnd: 939
    functionName: remove_apparmor_profile
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - free
    - unlink
    - rmdir
    - make_apparmor_profile_path
    - apparmor_dir
    linkageType: ''
    returnType: void
    signature: void remove_apparmor_profile(struct lxc_conf *conf, const char *lxcpath)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: make_apparmor_namespace
      Src: /src/lxc/src/lxc/lsm/apparmor.c:950,1
    - Dst: make_apparmor_profile_path
      Src: /src/lxc/src/lxc/lsm/apparmor.c:965,1
    - Dst: open
      Src: /src/lxc/src/lxc/lsm/apparmor.c:966,1
    - Dst: fstat
      Src: /src/lxc/src/lxc/lsm/apparmor.c:968,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:969,1
    - Dst: lxc_strmmap
      Src: /src/lxc/src/lxc/lsm/apparmor.c:975,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:978,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:984,1
    - Dst: get_apparmor_profile_content
      Src: /src/lxc/src/lxc/lsm/apparmor.c:988,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:992,1
    - Dst: memcmp
      Src: /src/lxc/src/lxc/lsm/apparmor.c:994,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/lsm/apparmor.c:997,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:999,1
    - Dst: apparmor_dir
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1003,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1004,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1006,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1007,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1010,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1012,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1014,1
    - Dst: run_apparmor_parser
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1019,1
    - Dst: remove_apparmor_profile
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1028,1
    - Dst: remove_apparmor_namespace
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1030,1
    - Dst: lxc_strmunmap
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1034,1
    - Dst: close
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1035,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1037,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1038,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 941
    functionDepth: 6
    functionLinenumber: 941
    functionLinenumberEnd: 1040
    functionName: load_apparmor_profile
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - get_apparmor_profile_content
    - lxc_strmunmap
    - close
    - free
    - remove_apparmor_profile
    - memcmp
    - SYSERROR
    - make_apparmor_namespace
    - strlen
    - lxc_mkdir_p
    - remove_apparmor_namespace
    - lxc_strmmap
    - run_apparmor_parser
    - make_apparmor_profile_path
    - fstat
    - apparmor_dir
    - open
    - lxc_write_to_file
    linkageType: ''
    returnType: int
    signature: int load_apparmor_profile(struct lsm_ops *ops, struct lxc_conf *conf,
      const char *lxcpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_apparmor_namespace
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1054,1
    - Dst: run_apparmor_parser
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1055,1
    - Dst: remove_apparmor_profile
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1046
    functionDepth: 6
    functionLinenumber: 1046
    functionLinenumberEnd: 1058
    functionName: apparmor_cleanup
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - remove_apparmor_profile
    - run_apparmor_parser
    - remove_apparmor_namespace
    linkageType: ''
    returnType: void
    signature: void apparmor_cleanup(struct lsm_ops *ops, struct lxc_conf *conf, const
      char *lxcpath)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: log_error
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1067,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1072,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1073,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1074,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1078,1
    - Dst: check_apparmor_parser_version
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1079,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1080,1
    - Dst: load_apparmor_profile
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1085,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1086,1
    - Dst: apparmor_profile_full
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1090,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1092,1
    - Dst: apparmor_namespace
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1097,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1098,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1099,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1099,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1100,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1100,1
    - Dst: must_append_sized
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1101,1
    - Dst: STRARRAYLEN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1101,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1102,1
    - Dst: apparmor_process_label_get
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1108,1
    - Dst: lxc_raw_getpid
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1108,1
    - Dst: aa_needs_transition
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1110,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1113,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1119,1
    - Dst: cgns_supported
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1124,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1130,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1131,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1133,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1134,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1135,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1140,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1145,1
    - Dst: apparmor_cleanup
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1147,1
    - Dst: free
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1149,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1060
    functionDepth: 7
    functionLinenumber: 1060
    functionLinenumberEnd: 1151
    functionName: apparmor_prepare
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - check_apparmor_parser_version
    - must_copy_string
    - apparmor_profile_full
    - free
    - log_error
    - strlen
    - must_append_sized
    - STRARRAYLEN
    - cgns_supported
    - WARN
    - strequal
    - apparmor_process_label_get
    - aa_needs_transition
    - lxc_raw_getpid
    - apparmor_cleanup
    - load_apparmor_profile
    - INFO
    - apparmor_namespace
    - ERROR
    linkageType: ''
    returnType: int
    signature: int apparmor_prepare(struct lsm_ops *ops, struct lxc_conf *conf, const
      char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - label
    argTypes:
    - struct lsm_ops*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1156
    functionName: apparmor_keyring_label_set
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int apparmor_keyring_label_set(struct lsm_ops *ops, const char *label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apparmor_process_label_open
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ops
    - pid
    - on_exec
    argTypes:
    - struct lsm_ops*
    - pid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1161
    functionName: apparmor_process_label_fd_get
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - __apparmor_process_label_open
    linkageType: ''
    returnType: int
    signature: int apparmor_process_label_fd_get(struct lsm_ops *ops, pid_t pid, bool
      on_exec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1171,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1173,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1173,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1174,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1176,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1178,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1182,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1184,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - ops
    - label_fd
    - label
    - on_exec
    argTypes:
    - struct lsm_ops*
    - int
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1189
    functionName: apparmor_process_label_set_at
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - syserror
    - ret_errno
    - strlen
    - snprintf
    - INFO
    - TRACE
    - zalloc
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: "int apparmor_process_label_set_at(struct lsm_ops *ops, int label_fd,\n\t\t\t\t\t
      const char *label, bool on_exec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1211,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1215,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1218,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1219,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1221,1
    - Dst: apparmor_am_unconfined
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1221,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1222,1
    - Dst: apparmor_process_label_fd_get
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1224,1
    - Dst: lxc_raw_gettid
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1224,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1226,1
    - Dst: apparmor_process_label_set_at
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1228,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1230,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ops
    - inlabel
    - conf
    - on_exec
    argTypes:
    - struct lsm_ops*
    - char*
    - struct lxc_conf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1203
    functionDepth: 4
    functionLinenumber: 1203
    functionLinenumberEnd: 1233
    functionName: apparmor_process_label_set
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 0
    functionsReached:
    - apparmor_process_label_set_at
    - strequal
    - log_info
    - apparmor_process_label_fd_get
    - apparmor_am_unconfined
    - lxc_raw_gettid
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int apparmor_process_label_set(struct lsm_ops *ops, const char *inlabel,\n\t\t\t\t
      \     struct lxc_conf *conf, bool on_exec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apparmor_enabled
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1265,1
    - Dst: apparmor_can_stack
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1268,1
    - Dst: file_is_yes
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1270,1
    - Dst: lxc_proc_cap_is_set
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1273,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1276,1
    - Dst: am_host_unpriv
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1277,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/lsm/apparmor.c:1278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1255
    functionDepth: 3
    functionLinenumber: 1255
    functionLinenumberEnd: 1282
    functionName: lsm_apparmor_ops_init
    functionSourceFile: /src/lxc/src/lxc/lsm/apparmor.c
    functionUses: 1
    functionsReached:
    - WARN
    - apparmor_enabled
    - apparmor_can_stack
    - file_is_yes
    - lxc_proc_cap_is_set
    - am_host_unpriv
    linkageType: ''
    returnType: struct lsm_ops
    signature: struct lsm_ops *lsm_apparmor_ops_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpidcon_raw
      Src: /src/lxc/src/lxc/lsm/selinux.c:38,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/selinux.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ops
    - pid
    argTypes:
    - struct lsm_ops*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: selinux_process_label_get
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached:
    - getpidcon_raw
    - log_error_errno
    linkageType: ''
    returnType: char
    signature: char *selinux_process_label_get(struct lsm_ops *ops, pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/lsm/selinux.c:59,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/selinux.c:61,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/lsm/selinux.c:63,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/lsm/selinux.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ops
    - fd_pid
    argTypes:
    - struct lsm_ops*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: selinux_process_label_get_at
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached:
    - strcspn
    - move_ptr
    - read_file_at
    - log_error_errno
    linkageType: ''
    returnType: char
    signature: char *selinux_process_label_get_at(struct lsm_ops *ops, int fd_pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/lsm/selinux.c:92,1
    - Dst: setexeccon_raw
      Src: /src/lxc/src/lxc/lsm/selinux.c:96,1
    - Dst: setcon_raw
      Src: /src/lxc/src/lxc/lsm/selinux.c:98,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/selinux.c:100,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lsm/selinux.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ops
    - inlabel
    - conf
    - on_exec
    argTypes:
    - struct lsm_ops*
    - char*
    - struct lxc_conf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: selinux_process_label_set
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached:
    - strequal
    - INFO
    - setcon_raw
    - setexeccon_raw
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int selinux_process_label_set(struct lsm_ops *ops, const char *inlabel,\n\t\t\t\t
      \    struct lxc_conf *conf, bool on_exec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setkeycreatecon_raw
      Src: /src/lxc/src/lxc/lsm/selinux.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - label
    argTypes:
    - struct lsm_ops*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: selinux_keyring_label_set
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached:
    - setkeycreatecon_raw
    linkageType: ''
    returnType: int
    signature: int selinux_keyring_label_set(struct lsm_ops *ops, const char *label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: selinux_prepare
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int selinux_prepare(struct lsm_ops *ops, struct lxc_conf *conf, const
      char *lxcpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ops
    - conf
    - lxcpath
    argTypes:
    - struct lsm_ops*
    - struct lxc_conf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: selinux_cleanup
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void selinux_cleanup(struct lsm_ops *ops, struct lxc_conf *conf, const
      char *lxcpath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/lsm/selinux.c:135,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/lsm/selinux.c:137,1
    - Dst: open
      Src: /src/lxc/src/lxc/lsm/selinux.c:141,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/selinux.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ops
    - pid
    - on_exec
    argTypes:
    - struct lsm_ops*
    - pid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: selinux_process_label_fd_get
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached:
    - open
    - log_error_errno
    - snprintf
    linkageType: ''
    returnType: int
    signature: int selinux_process_label_fd_get(struct lsm_ops *ops, pid_t pid, bool
      on_exec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/lsm/selinux.c:155,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/lsm/selinux.c:155,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/lsm/selinux.c:157,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/lsm/selinux.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ops
    - label_fd
    - label
    - on_exec
    argTypes:
    - struct lsm_ops*
    - int
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: selinux_process_label_set_at
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    - INFO
    - strlen
    - lxc_write_nointr
    linkageType: ''
    returnType: int
    signature: int selinux_process_label_set_at(struct lsm_ops *ops, int label_fd,
      const char *label, bool on_exec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/lxc/src/lxc/lsm/selinux.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct lsm_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: selinux_enabled
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 1
    functionsReached:
    - is_selinux_enabled
    linkageType: ''
    returnType: int
    signature: int selinux_enabled(struct lsm_ops *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/lxc/src/lxc/lsm/selinux.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: lsm_selinux_ops_init
    functionSourceFile: /src/lxc/src/lxc/lsm/selinux.c
    functionUses: 1
    functionsReached:
    - is_selinux_enabled
    linkageType: ''
    returnType: struct lsm_ops
    signature: struct lsm_ops *lsm_selinux_ops_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - attr
    - size
    argTypes:
    - int
    - union bpf_attr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: bpf_lxc
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.h
    functionUses: 0
    functionsReached:
    - syscall
    linkageType: ''
    returnType: int
    signature: int bpf_lxc(int cmd, union bpf_attr *attr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bpf_program_cgroup_detach
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.h:76,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.h:77,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - prog
    argTypes:
    - struct bpf_program*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: bpf_program_free
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.h
    functionUses: 0
    functionsReached:
    - bpf_program_cgroup_detach
    - free
    linkageType: ''
    returnType: void
    signature: void bpf_program_free(struct bpf_program *prog)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:30,1
    - Dst: cgroup_ops_init
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:32,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:34,1
    - Dst: struct cgroup_ops*::data_init
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:36,1
    - Dst: cgroup_exit
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:37,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:38,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:41,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:44,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:46,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:48,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: cgroup_init
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.c
    functionUses: 8
    functionsReached:
    - WARN
    - cgroup_exit
    - log_error_errno
    - TRACE
    - struct cgroup_ops*::data_init
    - cgroup_ops_init
    linkageType: ''
    returnType: struct cgroup_ops
    signature: struct cgroup_ops *cgroup_init(struct lxc_conf *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:61,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:63,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:64,1
    - Dst: free_equal
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:66,1
    - Dst: bpf_device_program_free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:68,1
    - Dst: close
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:71,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:75,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:76,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:79,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:80,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:82,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:83,1
    - Dst: free_equal
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:85,1
    - Dst: close_equal
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:88,1
    - Dst: close
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:91,1
    - Dst: close_equal
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:93,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:95,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:97,1
    - Dst: free
      Src: /src/lxc/src/lxc/cgroups/cgroup.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 102
    functionName: cgroup_exit
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.c
    functionUses: 3
    functionsReached:
    - free_equal
    - close
    - free
    - close_equal
    - bpf_device_program_free
    linkageType: ''
    returnType: void
    signature: void cgroup_exit(struct cgroup_ops *ops)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - layout
    argTypes:
    - cgroup_layout_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: cgroup_layout_name
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cgroup_layout_name(cgroup_layout_t layout)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - cgroupfs_type_magic_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: cgroup_hierarchy_name
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cgroup_hierarchy_name(cgroupfs_type_magic_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hierarchy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: device_utility_controller
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool device_utility_controller(const struct hierarchy *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hierarchy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: freezer_utility_controller
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool freezer_utility_controller(const struct hierarchy *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: pure_unified_layout
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pure_unified_layout(const struct cgroup_ops *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: cgroup_unified_fd
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cgroup_unified_fd(const struct cgroup_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __hierarchy
    - ','
    - __first
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: make_cgroup_path
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: make_cgroup_path(__hierarchy, __first, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR_OR_NULL
      Src: /src/lxc/src/lxc/cgroups/cgroup.h:318,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgroup.h:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct cgroup_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: put_cgroup_ctx
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - IS_ERR_OR_NULL
    linkageType: ''
    returnType: void
    signature: void put_cgroup_ctx(struct cgroup_ctx *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup.h:331,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup.h:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ops
    - ctx
    argTypes:
    - struct cgroup_ops*
    - struct cgroup_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 352
    functionName: prepare_cgroup_ctx
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup.h
    functionUses: 1
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int prepare_cgroup_ctx(struct cgroup_ops *ops,\n\t\t\t\t     struct
      cgroup_ctx *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.h:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: cgns_supported
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup_utils.h
    functionUses: 5
    functionsReached:
    - file_exists
    linkageType: ''
    returnType: bool
    signature: bool cgns_supported(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:83,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - list
    argTypes:
    - void***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: cg_list_add
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - realloc
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int cg_list_add(void ***list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - list
    - entry
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: string_in_list
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool string_in_list(char **list, const char *entry)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_trace_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:114,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:129,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:130,1
    - Dst: device_utility_controller
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:131,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:135,1
    - Dst: freezer_utility_controller
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:136,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:143,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:148,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:150,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:152,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - ops
    - controller
    argTypes:
    - struct cgroup_ops*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 153
    functionName: get_hierarchy
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - WARN
    - strequal
    - pure_unified_layout
    - freezer_utility_controller
    - ret_set_errno
    - device_utility_controller
    - INFO
    - string_in_list
    - log_trace_errno
    linkageType: ''
    returnType: struct hierarchy
    signature: struct hierarchy *get_hierarchy(const struct cgroup_ops *ops, const
      char *controller)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:160,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:162,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:169,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - ops
    - fd
    - limit
    argTypes:
    - struct cgroup_ops*
    - struct cgroup_fd*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 185
    functionName: prepare_cgroup_fd
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - get_hierarchy
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int prepare_cgroup_fd(const struct cgroup_ops *ops, struct cgroup_fd
      *fd, bool limit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:202,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:203,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:205,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:207,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:212,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:214,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:216,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:219,1
    - Dst: BITS_TO_LONGS
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:226,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:227,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:229,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:230,1
    - Dst: memset
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:232,1
    - Dst: set_bit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:238,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - buf
    - bitarr
    - last_set_bit
    argTypes:
    - char*
    - __u32**
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 247
    functionName: lxc_cpumask
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - memset
    - ret_errno
    - move_ptr
    - set_bit
    - strchr
    - strtoul
    - realloc
    - BITS_TO_LONGS
    - zalloc
    - lxc_iterate_parts
    linkageType: ''
    returnType: int
    signature: int lxc_cpumask(char *buf, __u32 **bitarr, __u32 *last_set_bit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:255,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:260,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:262,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:264,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:267,1
    - Dst: is_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:275,1
    - Dst: clear_bit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:277,1
    - Dst: is_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:278,1
    - Dst: set_bit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:280,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - buf
    - bitarr
    - last_set_bit
    - clear
    argTypes:
    - char*
    - __u32*
    - __u32
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 291
    functionName: lxc_cpumask_update
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - WARN
    - clear_bit
    - set_bit
    - strchr
    - strtoul
    - lxc_iterate_parts
    - is_set
    linkageType: ''
    returnType: int
    signature: "int lxc_cpumask_update(char *buf, __u32 *bitarr, __u32 last_set_bit,\n\t\t\t
      \     bool clear)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:297,1
    - Dst: is_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:301,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:304,1
    - Dst: lxc_append_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:308,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:310,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:314,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - bitarr
    - last_set_bit
    argTypes:
    - __u32*
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 317
    functionName: lxc_cpumask_to_cpulist
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - INTTYPE_TO_STRLEN
    - ret_set_errno
    - lxc_string_join
    - lxc_append_string
    - is_set
    linkageType: ''
    returnType: char
    signature: char *lxc_cpumask_to_cpulist(__u32 *bitarr, __u32 last_set_bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hierarchy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: is_unified_hierarchy
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unified_hierarchy(const struct hierarchy *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - hlist
    - entry
    argTypes:
    - struct hierarchy**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: controller_available
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - string_in_list
    linkageType: ''
    returnType: bool
    signature: bool controller_available(struct hierarchy **hlist, char *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: controller_available
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:348,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 352
    functionName: controllers_available
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - log_error
    - controller_available
    linkageType: ''
    returnType: bool
    signature: bool controllers_available(struct cgroup_ops *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cg_list_add
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:359,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 365
    functionName: list_new
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 2
    functionsReached:
    - move_ptr
    - cg_list_add
    linkageType: ''
    returnType: char
    signature: char **list_new(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:372,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:374,1
    - Dst: cg_list_add
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:376,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - list
    - entry
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: list_add_string
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - move_ptr
    - strdup
    - ret_errno
    - cg_list_add
    linkageType: ''
    returnType: int
    signature: int list_add_string(char ***list, char *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:389,1
    - Dst: list_add_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:392,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 398
    functionName: list_add_controllers
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_iterate_parts
    - list_add_string
    - move_ptr
    linkageType: ''
    returnType: char
    signature: char **list_add_controllers(char *controllers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:404,1
    - Dst: list_add_controllers
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 400
    functionDepth: 4
    functionLinenumber: 400
    functionLinenumberEnd: 409
    functionName: unified_controllers
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - read_file_at
    - list_add_controllers
    linkageType: ''
    returnType: char
    signature: char **unified_controllers(int dfd, const char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:420,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 2
    argNames:
    - ops
    - controllers
    argTypes:
    - struct cgroup_ops*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 434
    functionName: skip_hierarchy
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strequal
    linkageType: ''
    returnType: bool
    signature: bool skip_hierarchy(const struct cgroup_ops *ops, char **controllers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abspath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:443,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:444,1
    - Dst: zalloc::zalloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:446,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:448,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:462,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:463,1
    - Dst: controllers::controllers
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:464,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:465,1
    - Dst: cg_list_add
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:467,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:469,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 7
    argNames:
    - ops
    - dfd_mnt
    - mnt
    - dfd_base
    - base_cgroup
    - controllers
    - fs_type
    argTypes:
    - struct cgroup_ops*
    - int
    - char*
    - int
    - char*
    - char**
    - cgroupfs_type_magic_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 476
    functionName: cgroup_hierarchy_add
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - syserror_set
    - zalloc::zalloc
    - controllers::controllers
    - cg_list_add
    - move_ptr
    - maybe_empty
    - abspath
    - TRACE
    linkageType: ''
    returnType: int
    signature: "int cgroup_hierarchy_add(struct cgroup_ops *ops, int dfd_mnt, char
      *mnt,\n\t\t\t\tint dfd_base, char *base_cgroup,\n\t\t\t\tchar **controllers,
      cgroupfs_type_magic_t fs_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cgroup_tree_prune
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:487,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:489,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:491,1
    - Dst: free_equal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - hierarchies
    - path_prune
    argTypes:
    - struct hierarchy**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: cgroup_tree_remove
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - SYSWARN
    - TRACE
    - free_equal
    - cgroup_tree_prune
    linkageType: ''
    returnType: int
    signature: int cgroup_tree_remove(struct hierarchy **hierarchies, const char *path_prune)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:514,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:515,1
    - Dst: setresgid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:517,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:519,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:522,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:524,1
    - Dst: cgroup_tree_remove
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 528
    functionName: cgroup_tree_remove_wrapper
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - cgroup_tree_remove
    - lxc_drop_groups
    - setresgid
    - setresuid
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int cgroup_tree_remove_wrapper(void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:536,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:544,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:549,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:554,1
    - Dst: bpf_program_cgroup_detach
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:558,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:560,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:567,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:574,1
    - Dst: cgroup_tree_remove
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:577,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:580,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 581
    functionName: cgfsng_payload_destroy
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - userns_exec_full
    - WARN
    - container_uses_namespace
    - bpf_program_cgroup_detach
    - cgroup_tree_remove
    - SYSWARN
    - ERROR
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_payload_destroy(struct cgroup_ops *ops,\n\t\t\t\t\t\tstruct
      lxc_handler *handler)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:594,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:596,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:598,1
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:599,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:601,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:603,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:604,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:606,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:609,1
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:610,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:612,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:614,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:615,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:617,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:621,1
    - Dst: lxc_cpumask
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:625,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:627,1
    - Dst: lxc_cpumask_update
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:630,1
    - Dst: lxc_cpumask_update
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:633,1
    - Dst: lxc_cpumask_to_cpulist
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:636,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:637,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:639,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:640,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:643,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:647,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:647,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:649,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:651,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - dfd_parent
    - dfd_child
    - am_initialized
    argTypes:
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 655
    functionName: cpuset1_cpus_initialize
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - read_file_at
    - lxc_cpumask_to_cpulist
    - move_ptr
    - file_exists
    - isdigit
    - lxc_cpumask_update
    - strlen
    - TRACE
    - free_disarm
    - lxc_writeat
    - lxc_cpumask
    - log_error_errno
    linkageType: ''
    returnType: bool
    signature: "bool cpuset1_cpus_initialize(int dfd_parent, int dfd_child,\n\t\t\t\t
      \   bool am_initialized)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lxc_readat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:664,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:666,1
    - Dst: cpuset1_cpus_initialize
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:669,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:670,1
    - Dst: lxc_readat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:673,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:675,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:678,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:680,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:683,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:685,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - dfd_base
    - dfd_next
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 688
    functionName: cpuset1_initialize
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - cpuset1_cpus_initialize
    - lxc_readat
    - log_trace
    - lxc_writeat
    - syserror_ret
    linkageType: ''
    returnType: bool
    signature: bool cpuset1_initialize(int dfd_base, int dfd_next)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:700,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:701,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:703,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:705,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:707,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:713,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:714,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:716,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:716,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:717,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:719,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:722,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:726,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:728,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:730,1
    - Dst: close
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:733,1
    - Dst: cpuset1_initialize
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:734,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:735,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:741,1
    - Dst: syswarn_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:747,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:750,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - dfd_base
    - path
    - mode
    - cpuset_v1
    - eexist_ignore
    argTypes:
    - int
    - char*
    - mode_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 690
    functionDepth: 5
    functionLinenumber: 690
    functionLinenumberEnd: 751
    functionName: __cgroup_tree_create
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - syserror
    - ret_errno
    - syserror_set
    - STRLITERALLEN
    - close
    - strlcpy
    - strnequal
    - mkdirat
    - syswarn_set
    - abspath
    - is_empty_string
    - open_at
    - TRACE
    - cpuset1_initialize
    - move_fd
    - lxc_iterate_parts
    linkageType: ''
    returnType: int
    signature: "int __cgroup_tree_create(int dfd_base, const char *path, mode_t mode,\n\t\t\t\tbool
      cpuset_v1, bool eexist_ignore)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_unified_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:764,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:764,1
    - Dst: __cgroup_tree_create
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:768,1
    - Dst: syswarn_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:770,1
    - Dst: make_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:772,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:773,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:775,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:784,1
    - Dst: struct cgroup_ops*::setup_limits_legacy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:785,1
    - Dst: log_warn
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:786,1
    - Dst: __cgroup_tree_create
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:792,1
    - Dst: cgroup_tree_prune
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:795,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:796,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:798,1
    - Dst: syswarn_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:799,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:801,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:802,1
    - Dst: __cgroup_tree_create
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:805,1
    - Dst: syswarn_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:807,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:810,1
    - Dst: make_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:812,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:816,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 6
    argNames:
    - ops
    - conf
    - h
    - cgroup_limit_dir
    - cgroup_leaf
    - payload
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    - struct hierarchy*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 821
    functionName: cgroup_tree_create
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - syswarn_ret
    - must_make_path
    - __cgroup_tree_create
    - struct cgroup_ops*::setup_limits_legacy
    - log_warn
    - is_unified_hierarchy
    - TRACE
    - make_cgroup_path
    - move_fd
    - SYSWARN
    - string_in_list
    - cgroup_tree_prune
    linkageType: ''
    returnType: bool
    signature: "bool cgroup_tree_create(struct cgroup_ops *ops, struct lxc_conf *conf,\n\t\t\t
      \      struct hierarchy *h, const char *cgroup_limit_dir,\n\t\t\t       const
      char *cgroup_leaf, bool payload)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free_equal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:833,1
    - Dst: close_equal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:834,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:840,1
    - Dst: cgroup_tree_prune
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:847,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:848,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:850,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - h
    - path_prune
    - payload
    argTypes:
    - struct hierarchy*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 851
    functionName: cgroup_tree_prune_leaf
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - free_equal
    - close_equal
    - TRACE
    - SYSWARN
    - cgroup_tree_prune
    linkageType: ''
    returnType: void
    signature: "void cgroup_tree_prune_leaf(struct hierarchy *h, const char *path_prune,\n\t\t\t\t
      \  bool payload)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:857,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:861,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:869,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:874,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:880,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:884,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:897,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:902,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:904,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:906,1
    - Dst: is_unified_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:908,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:908,1
    - Dst: __cgroup_tree_create
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:910,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:912,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:916,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:918,1
    - Dst: cgroup_tree_prune
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:923,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:925,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:927,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 853
    functionDepth: 6
    functionLinenumber: 853
    functionLinenumberEnd: 929
    functionName: cgfsng_monitor_destroy
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - WARN
    - __cgroup_tree_create
    - INTTYPE_TO_STRLEN
    - is_unified_hierarchy
    - TRACE
    - lxc_writeat
    - SYSWARN
    - must_make_path
    - string_in_list
    - ERROR
    - cgroup_tree_prune
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_monitor_destroy(struct cgroup_ops *ops,\n\t\t\t\t\t\tstruct
      lxc_handler *handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:949,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:954,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 959
    functionName: check_cgroup_dir_config
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - log_error_errno
    linkageType: ''
    returnType: bool
    signature: bool check_cgroup_dir_config(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbus_connection_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - DBusConnection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 977
    functionName: _dbus_connection_free
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_connection_unref
    linkageType: ''
    returnType: void
    signature: void _dbus_connection_free(DBusConnection **conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - DBusMessage**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 985
    functionName: _dbus_message_free
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_message_unref
    linkageType: ''
    returnType: void
    signature: void _dbus_message_free(DBusMessage **message)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:995,1
    - Dst: dbus_connection_read_write
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:999,1
    - Dst: dbus_connection_pop_message
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1000,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1002,1
    - Dst: dbus_message_is_signal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1004,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1005,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1009,1
    - Dst: dbus_message_iter_init
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1011,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1012,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1013,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1014,1
    - Dst: dbus_message_iter_next
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1016,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1017,1
    - Dst: dbus_message_iter_next
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1019,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1020,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1021,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1022,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1023,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1024,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1025,1
    - Dst: dbus_message_iter_next
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1027,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1028,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1029,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1030,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1031,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1032,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1033,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - connection
    - scope_name
    argTypes:
    - DBusConnection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1036
    functionName: systemd_cgroup_scope_ready
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_message_iter_init
    - strcmp
    - dbus_message_iter_next
    - __cleanup__
    - dbus_message_iter_get_arg_type
    - dbus_connection_read_write
    - TRACE
    - dbus_connection_pop_message
    - dbus_message_is_signal
    - DEBUG
    - log_debug
    - dbus_message_iter_get_basic
    linkageType: ''
    returnType: enum systemd_scope_ret
    signature: enum systemd_scope_ret systemd_cgroup_scope_ready(DBusConnection *connection,
      const char *scope_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_open_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - parent
    - type
    - sig
    - sub
    argTypes:
    - DBusMessageIter*
    - int
    - char*
    - struct dbus_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1051
    functionName: open_dbus_container
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_message_iter_open_container
    linkageType: ''
    returnType: bool
    signature: bool open_dbus_container(DBusMessageIter *parent, int type, const char
      *sig, struct dbus_iter *sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_close_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sub
    argTypes:
    - struct dbus_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1057
    functionName: close_dbus_container
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: bool
    signature: bool close_dbus_container(struct dbus_iter *sub)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_abandon_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sub
    argTypes:
    - struct dbus_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1065
    functionName: abandon_dbus_container
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_message_iter_abandon_container
    linkageType: ''
    returnType: void
    signature: void abandon_dbus_container(struct dbus_iter *sub)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1069,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1072,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1073,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1076,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1077,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1081,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1082,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - parent
    - value
    - len
    argTypes:
    - struct DBusMessageIter*
    - uint32_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1085
    functionName: dbus_append_array
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - __cleanup__
    - dbus_message_iter_append_basic
    - close_dbus_container
    - log_debug
    - open_dbus_container
    linkageType: ''
    returnType: bool
    signature: bool dbus_append_array(struct DBusMessageIter *parent, const uint32_t
      *value, unsigned int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbus_message_iter_open_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1093,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1103,1
    - Dst: dbus_message_iter_close_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1105,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - DBusMessageIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1109
    functionName: sd_boilerplate
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_message_iter_open_container
    - log_debug
    - dbus_message_iter_close_container
    linkageType: ''
    returnType: bool
    signature: bool sd_boilerplate(DBusMessageIter *iter)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1118,1
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1119,1
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1120,1
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1123,1
    - Dst: dbus_message_new_method_call
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1127,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1129,1
    - Dst: dbus_message_iter_init_append
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1131,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1133,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1134,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1137,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1138,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1144,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1150,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1153,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1154,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1156,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1157,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1159,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1162,1
    - Dst: getpid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1164,1
    - Dst: dbus_append_array
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1165,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1166,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1168,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1169,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1170,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1171,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1174,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1175,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1177,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1178,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1180,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1181,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1182,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1183,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1184,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1185,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1186,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1187,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1190,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1191,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1193,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1194,1
    - Dst: open_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1196,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1197,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1198,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1199,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1200,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1201,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1202,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1203,1
    - Dst: close_dbus_container
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1205,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1206,1
    - Dst: sd_boilerplate
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1208,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1209,1
    - Dst: dbus_connection_send_with_reply
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1212,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1213,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1216,1
    - Dst: dbus_connection_flush
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1218,1
    - Dst: dbus_pending_call_block
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1220,1
    - Dst: dbus_pending_call_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1222,1
    - Dst: systemd_cgroup_scope_ready
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1229,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1231,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1235,1
    - Dst: nanosleep
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1236,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 2
    argNames:
    - connection
    - scope_name
    argTypes:
    - DBusConnection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1111
    functionDepth: 2
    functionLinenumber: 1111
    functionLinenumberEnd: 1241
    functionName: start_scope
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - getpid
    - sd_boilerplate
    - dbus_pending_call_unref
    - systemd_cgroup_scope_ready
    - __cleanup__
    - dbus_append_array
    - dbus_message_new_method_call
    - dbus_connection_send_with_reply
    - nanosleep
    - dbus_pending_call_block
    - dbus_connection_flush
    - dbus_message_iter_append_basic
    - close_dbus_container
    - log_debug
    - open_dbus_container
    - dbus_message_iter_init_append
    linkageType: ''
    returnType: bool
    signature: bool start_scope(DBusConnection *connection, const char *scope_name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1246,1
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1251,1
    - Dst: dbus_error_init
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1254,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1257,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1258,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1260,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1264,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1267,1
    - Dst: dbus_connection_open
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1269,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1271,1
    - Dst: dbus_error_free
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1273,1
    - Dst: dbus_error_free
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1276,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1278,1
    - Dst: dbus_message_new_method_call
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1280,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1285,1
    - Dst: dbus_connection_send_with_reply
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1288,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1289,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1294,1
    - Dst: dbus_connection_flush
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1298,1
    - Dst: dbus_message_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1300,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1303,1
    - Dst: dbus_pending_call_block
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1305,1
    - Dst: dbus_pending_call_steal_reply
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1307,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1309,1
    - Dst: dbus_pending_call_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1313,1
    - Dst: dbus_message_iter_init
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1315,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1316,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1320,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1321,1
    - Dst: dbus_message_iter_get_arg_type
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1321,1
    - Dst: dbus_message_iter_get_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1324,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1325,1
    - Dst: dbus_connection_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1330,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1332
    functionName: open_systemd
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_pending_call_steal_reply
    - dbus_pending_call_block
    - dbus_connection_flush
    - strdup
    - dbus_message_unref
    - dbus_pending_call_unref
    - dbus_message_new_method_call
    - log_error
    - WARN
    - dbus_message_iter_get_arg_type
    - TRACE
    - dbus_error_init
    - DEBUG
    - dbus_connection_open
    - dbus_message_iter_get_basic
    - dbus_message_iter_init
    - __cleanup__
    - dbus_connection_send_with_reply
    - dbus_error_free
    - getenv
    - dbus_connection_unref
    - ERROR
    linkageType: ''
    returnType: DBusConnection
    signature: DBusConnection *open_systemd(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1337,1
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1338,1
    - Dst: dbus_threads_init_default
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1345,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1349,1
    - Dst: open_systemd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1350,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1352,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1354,1
    - Dst: dbus_message_new_method_call
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1355,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1357,1
    - Dst: dbus_message_iter_init_append
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1359,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1360,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1361,1
    - Dst: dbus_message_iter_append_basic
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1362,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1363,1
    - Dst: dbus_append_array
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1364,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1365,1
    - Dst: dbus_connection_send_with_reply
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1367,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1368,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1371,1
    - Dst: dbus_connection_flush
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1373,1
    - Dst: dbus_pending_call_block
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1375,1
    - Dst: dbus_message_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1377,1
    - Dst: dbus_pending_call_steal_reply
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1380,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1382,1
    - Dst: dbus_pending_call_unref
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - scope_name
    - pid
    argTypes:
    - char*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1334
    functionDepth: 2
    functionLinenumber: 1334
    functionLinenumberEnd: 1387
    functionName: enter_scope
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - dbus_pending_call_steal_reply
    - dbus_message_unref
    - dbus_pending_call_unref
    - __cleanup__
    - dbus_append_array
    - dbus_message_new_method_call
    - dbus_connection_send_with_reply
    - log_error
    - dbus_pending_call_block
    - dbus_connection_flush
    - dbus_message_iter_append_basic
    - TRACE
    - dbus_message_iter_init_append
    - log_debug
    - dbus_threads_init_default
    - open_systemd
    linkageType: ''
    returnType: bool
    signature: bool enter_scope(char *scope_name, pid_t pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1394,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1399,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - contents
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1404
    functionName: string_pure_unified_system
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_iterate_parts
    - strlen
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool string_pure_unified_system(char *contents)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1416,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1420,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1421,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1422,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1427,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1429,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1430,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1433,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1435,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1435,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - fd_dir
    - cg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1406
    functionDepth: 3
    functionLinenumber: 1406
    functionLinenumberEnd: 1440
    functionName: enable_controllers_delegation
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strlcat
    - read_file_at
    - strlen
    - lxc_writeat
    - log_debug
    - lxc_iterate_parts
    - log_error_errno
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: bool enable_controllers_delegation(int fd_dir, char *cg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1452,1
    - Dst: string_pure_unified_system
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1456,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1462,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1462,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1463,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1465,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1446
    functionDepth: 3
    functionLinenumber: 1446
    functionLinenumberEnd: 1466
    functionName: get_current_unified_cgroup
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - read_file_at
    - STRLITERALLEN
    - strnequal
    - strdup
    - string_pure_unified_system
    linkageType: ''
    returnType: char
    signature: char *get_current_unified_cgroup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1472,1
    - Dst: string_pure_unified_system
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1477
    functionName: pure_unified_system
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 2
    functionsReached:
    - read_file_at
    - string_pure_unified_system
    linkageType: ''
    returnType: bool
    signature: bool pure_unified_system(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1489,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1491,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1493,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1495,1
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1497,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1501,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1501,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1503,1
    - Dst: enable_controllers_delegation
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - parent_cgroup
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1483
    functionDepth: 4
    functionLinenumber: 1483
    functionLinenumberEnd: 1507
    functionName: move_and_delegate_unified
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - read_file_at
    - enable_controllers_delegation
    - mkdirat
    - strlen
    - open_at
    - syserror_ret
    - lxc_writeat
    linkageType: ''
    returnType: bool
    signature: bool move_and_delegate_unified(char *parent_cgroup)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1518,1
    - Dst: __cleanup__
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1521,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1524,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1525,1
    - Dst: pure_unified_system
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1532,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1533,1
    - Dst: dbus_threads_init_default
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1537,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1542,1
    - Dst: open_systemd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1544,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1546,1
    - Dst: dbus_message_new_method_call
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1548,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1550,1
    - Dst: dbus_error_init
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1552,1
    - Dst: dbus_connection_send
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1554,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1555,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1556,1
    - Dst: dbus_connection_flush
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1559,1
    - Dst: dbus_bus_add_match
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1563,1
    - Dst: dbus_connection_flush
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1564,1
    - Dst: dbus_error_is_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1565,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1566,1
    - Dst: dbus_error_free
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1567,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1572,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1572,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1572,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1573,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1575,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1578,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1579,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1581,1
    - Dst: start_scope
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1582,1
    - Dst: get_current_unified_cgroup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1583,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1585,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1586,1
    - Dst: move_and_delegate_unified
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1587,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1588,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1589,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - ops
    - conf
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1513
    functionDepth: 5
    functionLinenumber: 1513
    functionLinenumberEnd: 1595
    functionName: unpriv_systemd_create_scope
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - syserror
    - log_info
    - start_scope
    - dbus_connection_flush
    - dbus_error_is_set
    - get_current_unified_cgroup
    - pure_unified_system
    - dbus_message_new_method_call
    - STRLITERALLEN
    - log_error
    - dbus_bus_add_match
    - strlen
    - move_and_delegate_unified
    - log_trace
    - must_make_path
    - geteuid
    - dbus_error_init
    - TRACE
    - dbus_connection_send
    - dbus_threads_init_default
    - open_systemd
    - strnprintf
    - __cleanup__
    - dbus_error_free
    - INFO
    - ERROR
    - log_error_errno
    - malloc
    linkageType: ''
    returnType: int
    signature: int unpriv_systemd_create_scope(struct cgroup_ops *ops, struct lxc_conf
      *conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - conf
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1601
    functionName: unpriv_systemd_create_scope
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unpriv_systemd_create_scope(struct cgroup_ops *ops, struct lxc_conf
      *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1611,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1613,1
    - Dst: deabs
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1613,1
    - Dst: ERR_PTR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1618
    functionName: cgroup_relpath
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - deabs
    - strdup
    - strequal
    linkageType: ''
    returnType: char
    signature: char *cgroup_relpath(char *cg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1630,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1636,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1639,1
    - Dst: check_cgroup_dir_config
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1643,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1647,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1649,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1656,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1658,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1660,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1664,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1669,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1677,1
    - Dst: cgroup_tree_create
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1680,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1685,1
    - Dst: cgroup_tree_prune_leaf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1687,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1696,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1698,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1699,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 49
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1620
    functionDepth: 7
    functionLinenumber: 1620
    functionLinenumberEnd: 1700
    functionName: cgfsng_monitor_create
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_string_replace
    - log_info
    - cgroup_tree_prune_leaf
    - ret_set_errno
    - cgroup_tree_create
    - move_ptr
    - sprintf
    - DEBUG
    - must_concat
    - check_cgroup_dir_config
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_monitor_create(struct cgroup_ops *ops, struct lxc_handler
      *handler)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1717,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1723,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1726,1
    - Dst: check_cgroup_dir_config
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1730,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1734,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1736,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1739,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1745,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1749,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1757,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1759,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1761,1
    - Dst: must_concat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1766,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1772,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1780,1
    - Dst: cgroup_tree_create
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1783,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1789,1
    - Dst: cgroup_tree_prune_leaf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1791,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1800,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1802,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1804,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1807,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1706
    functionDepth: 7
    functionLinenumber: 1706
    functionLinenumberEnd: 1810
    functionName: cgfsng_payload_create
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_string_replace
    - cgroup_tree_prune_leaf
    - ret_set_errno
    - move_ptr
    - must_concat
    - cgroup_tree_create
    - INFO
    - sprintf
    - DEBUG
    - must_make_path
    - check_cgroup_dir_config
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_payload_create(struct cgroup_ops *ops, struct lxc_handler
      *handler)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1816,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1817,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1820,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1826,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1829,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1831,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1836,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1845,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1847,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1849,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1854,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1858,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1860,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1863,1
    - Dst: is_unified_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1871,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1872,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1812
    functionDepth: 2
    functionLinenumber: 1812
    functionLinenumberEnd: 1877
    functionName: cgfsng_monitor_enter
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - close_prot_errno_disarm
    - INTTYPE_TO_STRLEN
    - ret_set_errno
    - is_unified_hierarchy
    - TRACE
    - lxc_writeat
    - log_error_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_monitor_enter(struct cgroup_ops *ops,\n\t\t\t\t\t
      \     struct lxc_handler *handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1883,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1886,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1892,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1895,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1897,1
    - Dst: is_unified_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1905,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1909,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1911,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1913,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1879
    functionDepth: 2
    functionLinenumber: 1879
    functionLinenumberEnd: 1917
    functionName: cgfsng_payload_enter
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - INTTYPE_TO_STRLEN
    - ret_set_errno
    - is_unified_hierarchy
    - TRACE
    - lxc_writeat
    - log_error_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_payload_enter(struct cgroup_ops *ops,\n\t\t\t\t\t
      \     struct lxc_handler *handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fchownat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1924,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1927,1
    - Dst: fchmodat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1932,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - dirfd
    - path
    - chown_uid
    - chown_gid
    - chmod_mode
    argTypes:
    - int
    - char*
    - uid_t
    - gid_t
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1938
    functionName: fchowmodat
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - fchownat
    - log_warn_errno
    - fchmodat
    linkageType: ''
    returnType: int
    signature: "int fchowmodat(int dirfd, const char *path, uid_t chown_uid,\n\t\t
      \     gid_t chown_gid, mode_t chmod_mode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1955,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1956,1
    - Dst: setresgid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1958,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1960,1
    - Dst: setresuid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1963,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1965,1
    - Dst: get_ns_uid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1968,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1976,1
    - Dst: fchowmodat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1978,1
    - Dst: fchowmodat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1989,1
    - Dst: fchowmodat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1991,1
    - Dst: fchowmodat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:1997,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1947
    functionDepth: 2
    functionLinenumber: 1947
    functionLinenumberEnd: 2001
    functionName: chown_cgroup_wrapper
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - syserror_set
    - lxc_drop_groups
    - get_ns_uid
    - setresgid
    - setresuid
    - fchowmodat
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int chown_cgroup_wrapper(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2009,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2015,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2018,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2020,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2023,1
    - Dst: userns_exec_1
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2028,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2029,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - ops
    - conf
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2003
    functionDepth: 5
    functionLinenumber: 2003
    functionLinenumberEnd: 2032
    functionName: cgfsng_chown
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - userns_exec_1
    - ret_set_errno
    - geteuid
    - list_empty
    - log_error_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_chown(struct cgroup_ops *ops,\n\t\t\t\t      struct
      lxc_conf *conf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2046,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2049,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2065,1
    - Dst: faccessat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2066,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2068,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2071
    functionName: cgfsng_finalize
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - faccessat
    - pure_unified_layout
    - close_prot_errno_disarm
    - TRACE
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_finalize(struct cgroup_ops *ops)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cgroup_automount_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2074
    functionDepth: 0
    functionLinenumber: 2074
    functionLinenumberEnd: 2086
    functionName: cg_mount_needs_subdirs
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cg_mount_needs_subdirs(int cgroup_automount_type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2102,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2104,1
    - Dst: add_required_remount_flags
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2107,1
    - Dst: mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2110,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2114,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2116,1
    - Dst: make_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2119,1
    - Dst: mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2123,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2125,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2127,1
    - Dst: add_required_remount_flags
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2130,1
    - Dst: mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2132,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2134,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2135,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - cgroup_automount_type
    - h
    - hierarchy_mnt
    - cgpath
    - container_cgroup
    argTypes:
    - int
    - struct hierarchy*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2092
    functionDepth: 1
    functionLinenumber: 2092
    functionLinenumberEnd: 2140
    functionName: cg_legacy_mount_controllers
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - add_required_remount_flags
    - INFO
    - make_cgroup_path
    - log_error_errno
    - mount
    linkageType: ''
    returnType: int
    signature: "int cg_legacy_mount_controllers(int cgroup_automount_type, struct
      hierarchy *h,\n\t\t\t\t       char *hierarchy_mnt, char *cgpath,\n\t\t\t\t       const
      char *container_cgroup)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2158,1
    - Dst: is_unified_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2170,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2175,1
    - Dst: fs_prepare
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2176,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2178,1
    - Dst: is_unified_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2180,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2182,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2182,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2183,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2183,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2185,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2187,1
    - Dst: fs_attach
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2191,1
    - Dst: is_unified_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2199,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2200,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2202,1
    - Dst: get_rootfs_mnt
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2205,1
    - Dst: mnt_attributes_old
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2206,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2208,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2210,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2211,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2214,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2215,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2217,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2218,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 5
    argNames:
    - cgroup_automount_type
    - h
    - rootfs
    - dfd_mnt_cgroupfs
    - hierarchy_mnt
    argTypes:
    - int
    - struct hierarchy*
    - struct lxc_rootfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2148
    functionDepth: 4
    functionLinenumber: 2148
    functionLinenumberEnd: 2220
    functionName: __cgroupfs_mount
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - safe_mount
    - ret_errno
    - STRLITERALLEN
    - strnequal
    - maybe_empty
    - is_unified_hierarchy
    - get_rootfs_mnt
    - fs_prepare
    - fs_attach
    - lxc_string_join
    - mnt_attributes_old
    - must_make_path
    - DEBUG
    - can_use_mount_api
    - fs_set_property
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int __cgroupfs_mount(int cgroup_automount_type, struct hierarchy *h,\n\t\t\t
      \   struct lxc_rootfs *rootfs, int dfd_mnt_cgroupfs,\n\t\t\t    const char *hierarchy_mnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cgroupfs_mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cgroup_automount_type
    - h
    - rootfs
    - dfd_mnt_cgroupfs
    - hierarchy_mnt
    argTypes:
    - int
    - struct hierarchy*
    - struct lxc_rootfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2222
    functionDepth: 5
    functionLinenumber: 2222
    functionLinenumberEnd: 2228
    functionName: cgroupfs_mount
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - __cgroupfs_mount
    linkageType: ''
    returnType: int
    signature: "int cgroupfs_mount(int cgroup_automount_type, struct hierarchy *h,\n\t\t\t\t
      struct lxc_rootfs *rootfs,\n\t\t\t\t int dfd_mnt_cgroupfs, const char *hierarchy_mnt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cgroupfs_mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - cgroup_automount_type
    - h
    - rootfs
    - dfd_mnt_cgroupfs
    - hierarchy_mnt
    argTypes:
    - int
    - struct hierarchy*
    - struct lxc_rootfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2230
    functionDepth: 5
    functionLinenumber: 2230
    functionLinenumberEnd: 2248
    functionName: cgroupfs_bind_mount
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - __cgroupfs_mount
    linkageType: ''
    returnType: int
    signature: "int cgroupfs_bind_mount(int cgroup_automount_type, struct hierarchy
      *h,\n\t\t\t\t      struct lxc_rootfs *rootfs,\n\t\t\t\t      int dfd_mnt_cgroupfs,\n\t\t\t\t
      \     const char *hierarchy_mnt)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: get_rootfs_mnt
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2259,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2263,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2269,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2272,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2281,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2284,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2287,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2290,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2293,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2296,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2299,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2302,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2305,1
    - Dst: lxc_wants_cap
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2310,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2322,1
    - Dst: cgns_supported
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2326,1
    - Dst: container_uses_namespace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2326,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2330,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2333,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2339,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2341,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2344,1
    - Dst: cgroupfs_mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2381,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2383,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2385,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2395,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2397,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2400,1
    - Dst: can_use_mount_api
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2408,1
    - Dst: fs_prepare
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2409,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2411,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2413,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2415,1
    - Dst: fs_set_property
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2417,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2419,1
    - Dst: fs_attach
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2421,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2426,1
    - Dst: safe_mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2427,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2432,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2435,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2438,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2445,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2447,1
    - Dst: cgroupfs_mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2455,1
    - Dst: cgroupfs_bind_mount
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2464,1
    - Dst: cg_mount_needs_subdirs
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2469,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2473,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2475,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2476,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2478,1
    - Dst: cg_legacy_mount_controllers
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2482,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 117
    argCount: 3
    argNames:
    - ops
    - handler
    - cg_flags
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2250
    functionDepth: 6
    functionLinenumber: 2250
    functionLinenumberEnd: 2490
    functionName: cgfsng_mount
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - open_at
    - lxc_wants_cap
    - fs_prepare
    - fs_attach
    - can_use_mount_api
    - fs_set_property
    - cg_legacy_mount_controllers
    - container_uses_namespace
    - lxc_mkdir_p
    - log_trace
    - get_rootfs_mnt
    - cgroupfs_bind_mount
    - must_make_path
    - cgns_supported
    - safe_mount
    - pure_unified_layout
    - mkdirat
    - cgroupfs_mount
    - TRACE
    - syserror_ret
    - cg_mount_needs_subdirs
    - ret_set_errno
    - SYSWARN
    - log_error_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_mount(struct cgroup_ops *ops,\n\t\t\t\t      struct
      lxc_handler *handler, int cg_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2497,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2503,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2505,1
    - Dst: make_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2512,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2515,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - ops
    - conf
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2493
    functionDepth: 2
    functionLinenumber: 2493
    functionLinenumberEnd: 2521
    functionName: cgfsng_criu_escape
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - geteuid
    - make_cgroup_path
    - log_error_errno
    - lxc_write_to_file
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_criu_escape(const struct cgroup_ops *ops,\n\t\t\t\t\t
      \   struct lxc_conf *conf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2523
    functionDepth: 1
    functionLinenumber: 2523
    functionLinenumberEnd: 2537
    functionName: cgfsng_criu_num_hierarchies
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_criu_num_hierarchies(struct cgroup_ops *ops)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2545,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2548,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ops
    - n
    - out
    argTypes:
    - struct cgroup_ops*
    - int
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2539
    functionDepth: 1
    functionLinenumber: 2539
    functionLinenumberEnd: 2558
    functionName: cgfsng_criu_get_hierarchies
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_criu_get_hierarchies(struct cgroup_ops *ops,\n\t\t\t\t\t\t
      \    int n, char ***out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2564,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2566,1
    - Dst: lxc_write_openat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2568,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2560
    functionDepth: 3
    functionLinenumber: 2560
    functionLinenumberEnd: 2570
    functionName: cg_legacy_freeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_write_openat
    - get_hierarchy
    - ret_set_errno
    - STRLITERALLEN
    linkageType: ''
    returnType: int
    signature: int cg_legacy_freeze(struct cgroup_ops *ops)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PTR_TO_INT
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2577,1
    - Dst: fdopen_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2581,1
    - Dst: getline
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2590,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2591,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2591,1
    - Dst: rewind
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - fd
    - events
    - cbdata
    - descr
    argTypes:
    - int
    - uint32_t
    - void*
    - struct lxc_async_descr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2572
    functionDepth: 3
    functionLinenumber: 2572
    functionLinenumberEnd: 2597
    functionName: freezer_cgroup_events_cb
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - STRLITERALLEN
    - strnequal
    - fdopen_at
    - rewind
    - getline
    - PTR_TO_INT
    linkageType: ''
    returnType: int
    signature: "int freezer_cgroup_events_cb(int fd, uint32_t events, void *cbdata,\n\t\t\t\t
      \   struct lxc_async_descr *descr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2606,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2613,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2616,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2621,1
    - Dst: open
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2622,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2624,1
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2626,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2628,1
    - Dst: lxc_mainloop_add_handler_events
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2633,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2636,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2639,1
    - Dst: lxc_write_openat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2642,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2644,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2646,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2647,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 6
    argNames:
    - ops
    - timeout
    - state_string
    - state_num
    - epoll_error
    - wait_error
    argTypes:
    - struct cgroup_ops*
    - int
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2599
    functionDepth: 5
    functionLinenumber: 2599
    functionLinenumberEnd: 2650
    functionName: cg_unified_freeze_do
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - lxc_write_openat
    - lxc_mainloop_add_handler_events
    - INT_TO_PTR
    - lxc_mainloop
    - must_make_path
    - call_cleaner
    - log_error_errno
    - open
    - lxc_mainloop_open
    linkageType: ''
    returnType: int
    signature: "int cg_unified_freeze_do(struct cgroup_ops *ops, int timeout,\n\t\t\t\tconst
      char *state_string,\n\t\t\t\tint state_num,\n\t\t\t\tconst char *epoll_error,\n\t\t\t\tconst
      char *wait_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cg_unified_freeze_do
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - timeout
    argTypes:
    - struct cgroup_ops*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2652
    functionDepth: 6
    functionLinenumber: 2652
    functionLinenumberEnd: 2657
    functionName: cg_unified_freeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - cg_unified_freeze_do
    linkageType: ''
    returnType: int
    signature: int cg_unified_freeze(struct cgroup_ops *ops, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2662,1
    - Dst: cg_legacy_freeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2665,1
    - Dst: cg_unified_freeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ops
    - timeout
    argTypes:
    - struct cgroup_ops*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2659
    functionDepth: 7
    functionLinenumber: 2659
    functionLinenumberEnd: 2668
    functionName: cgfsng_freeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - cg_unified_freeze
    - cg_legacy_freeze
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_freeze(struct cgroup_ops *ops, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2674,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2676,1
    - Dst: lxc_write_openat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2678,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2680
      start: 2670
    functionDepth: 3
    functionLinenumber: 2670
    functionLinenumberEnd: 2680
    functionName: cg_legacy_unfreeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_write_openat
    - get_hierarchy
    - ret_set_errno
    - STRLITERALLEN
    linkageType: ''
    returnType: int
    signature: int cg_legacy_unfreeze(struct cgroup_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cg_unified_freeze_do
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - timeout
    argTypes:
    - struct cgroup_ops*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2682
    functionDepth: 6
    functionLinenumber: 2682
    functionLinenumberEnd: 2687
    functionName: cg_unified_unfreeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - cg_unified_freeze_do
    linkageType: ''
    returnType: int
    signature: int cg_unified_unfreeze(struct cgroup_ops *ops, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2692,1
    - Dst: cg_legacy_unfreeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2695,1
    - Dst: cg_unified_unfreeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ops
    - timeout
    argTypes:
    - struct cgroup_ops*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2689
    functionDepth: 7
    functionLinenumber: 2689
    functionLinenumberEnd: 2698
    functionName: cgfsng_unfreeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - cg_legacy_unfreeze
    - cg_unified_unfreeze
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_unfreeze(struct cgroup_ops *ops, int timeout)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2707,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2709,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2710,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2719,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2720,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2721,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2722,1
    - Dst: strspn
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ops
    - controller
    - limiting
    argTypes:
    - struct cgroup_ops*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2700
    functionDepth: 2
    functionLinenumber: 2700
    functionLinenumberEnd: 2726
    functionName: cgfsng_get_cgroup_do
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - STRLITERALLEN
    - strnequal
    - log_warn_errno
    - strspn
    - strlen
    - maybe_empty
    - get_hierarchy
    linkageType: ''
    returnType: char
    signature: "char *cgfsng_get_cgroup_do(struct cgroup_ops *ops,\n\t\t\t\t\tconst
      char *controller, bool limiting)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cgfsng_get_cgroup_do
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - controller
    argTypes:
    - struct cgroup_ops*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2728
    functionDepth: 3
    functionLinenumber: 2728
    functionLinenumberEnd: 2732
    functionName: cgfsng_get_cgroup
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - cgfsng_get_cgroup_do
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops *cgfsng_get_cgroup(struct cgroup_ops *ops,\n\t\t\t\t\t\t
      \ const char *controller)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cgfsng_get_cgroup_do
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - controller
    argTypes:
    - struct cgroup_ops*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2734
    functionDepth: 3
    functionLinenumber: 2734
    functionLinenumberEnd: 2738
    functionName: cgfsng_get_limit_cgroup
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - cgfsng_get_cgroup_do
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops *cgfsng_get_limit_cgroup(struct cgroup_ops *ops,\n\t\t\t\t\t\t\tconst
      char *controller)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - inpath
    - filename
    argTypes:
    - struct hierarchy*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2743
    functionDepth: 1
    functionLinenumber: 2743
    functionLinenumberEnd: 2748
    functionName: build_full_cgpath_from_monitorpath
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - make_cgroup_path
    linkageType: ''
    returnType: char
    signature: "char *build_full_cgpath_from_monitorpath(struct hierarchy *h,\n\t\t\t\t\t\t
      \      const char *inpath,\n\t\t\t\t\t\t       const char *filename)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2754,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2758,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2760,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2762,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2766,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2768,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2770,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2774,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2778,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2778,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2781,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2790,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2791,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2793,1
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2796,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2798,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2804,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2806,1
    - Dst: unlinkat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2808,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2809,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2813,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2818,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - conf
    - unified_fd
    - pid
    argTypes:
    - struct lxc_conf*
    - int
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2750
    functionDepth: 2
    functionLinenumber: 2750
    functionLinenumberEnd: 2819
    functionName: cgroup_attach_leaf
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - INTTYPE_TO_STRLEN
    - STRLITERALLEN
    - mkdirat
    - SYSERROR
    - log_trace
    - lxc_writeat
    - unlinkat
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int cgroup_attach_leaf(const struct lxc_conf *conf, int unified_fd,
      pid_t pid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mkdirat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2829,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2831,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2834,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2836,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2839,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2841,1
    - Dst: lxc_abstract_unix_send_fds
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2844,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2846,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2849,1
    - Dst: lxc_abstract_unix_send_credential
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2851,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2853,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2855,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - conf
    - unified_fd
    - sk_fd
    - unprivileged
    argTypes:
    - struct lxc_conf*
    - int
    - int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2821
    functionDepth: 3
    functionLinenumber: 2821
    functionLinenumberEnd: 2859
    functionName: cgroup_attach_create_leaf
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - syserror
    - lxc_abstract_unix_send_credential
    - mkdirat
    - open_at
    - TRACE
    - lxc_abstract_unix_send_fds
    linkageType: ''
    returnType: int
    signature: "int cgroup_attach_create_leaf(const struct lxc_conf *conf,\n\t\t\t\t
      \    int unified_fd, int *sk_fd, bool unprivileged)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2867,1
    - Dst: lxc_cmd_get_systemd_scope
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2873,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2875,1
    - Dst: enter_scope
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2876,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2877,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2879,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2881,1
    - Dst: lxc_abstract_unix_recv_two_fds
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2886,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2888,1
    - Dst: lxc_abstract_unix_rcv_credential
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2890,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2892,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2894,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2896,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2898,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2900,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2902,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2904,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2907,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2909,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2911,1
    - Dst: lxc_write_nointr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2913,1
    - Dst: log_debug
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2915,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2917,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 6
    argNames:
    - conf
    - lxcpath
    - unified_fd
    - sk_fd
    - pid
    - unprivileged
    argTypes:
    - struct lxc_conf*
    - char*
    - int
    - int*
    - pid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2918
      start: 2861
    functionDepth: 8
    functionLinenumber: 2861
    functionLinenumberEnd: 2918
    functionName: cgroup_attach_move_into_leaf
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_abstract_unix_rcv_credential
    - syserror
    - INTTYPE_TO_STRLEN
    - lxc_abstract_unix_recv_two_fds
    - lxc_cmd_get_systemd_scope
    - lxc_write_nointr
    - open_at
    - TRACE
    - sprintf
    - enter_scope
    - log_debug
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int cgroup_attach_move_into_leaf(const struct lxc_conf *conf,\n\t\t\t\t\tconst
      char *lxcpath,\n\t\t\t\t\tint unified_fd, int *sk_fd, pid_t pid,\n\t\t\t\t\tbool
      unprivileged)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2935,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2937,1
    - Dst: cgroup_attach_create_leaf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2929
    functionDepth: 4
    functionLinenumber: 2929
    functionLinenumberEnd: 2940
    functionName: cgroup_unified_attach_child_wrapper
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - close_prot_errno_disarm
    - ret_errno
    - cgroup_attach_create_leaf
    linkageType: ''
    returnType: int
    signature: int cgroup_unified_attach_child_wrapper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2948,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2950,1
    - Dst: cgroup_attach_move_into_leaf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2951,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2942
    functionDepth: 9
    functionLinenumber: 2942
    functionLinenumberEnd: 2955
    functionName: cgroup_unified_attach_parent_wrapper
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - cgroup_attach_move_into_leaf
    - close_prot_errno_disarm
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int cgroup_unified_attach_parent_wrapper(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2976,1
    - Dst: cgroup_attach
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2978,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2980,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2981,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2982,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2983,1
    - Dst: lxc_cmd_get_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2986,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2990,1
    - Dst: make_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2992,1
    - Dst: open
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2994,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2996,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:2998,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3003,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3007,1
    - Dst: userns_exec_minimal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3011,1
    - Dst: cgroup_attach_leaf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3017,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 6
    argNames:
    - h
    - conf
    - name
    - lxcpath
    - pid
    - controller
    argTypes:
    - struct hierarchy*
    - struct lxc_conf*
    - char*
    - char*
    - pid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 2966
    functionDepth: 9
    functionLinenumber: 2966
    functionLinenumberEnd: 3021
    functionName: __cg_unified_attach
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - userns_exec_minimal
    - ret_errno
    - socketpair
    - log_error_errno
    - am_guest_unpriv
    - lxc_cmd_get_cgroup_path
    - cgroup_attach_leaf
    - log_trace
    - TRACE
    - cgroup_attach
    - make_cgroup_path
    - list_empty
    - ERRNO_IS_NOT_SUPPORTED
    - open
    linkageType: ''
    returnType: int
    signature: "int __cg_unified_attach(const struct hierarchy *h,\n\t\t\t       const
      struct lxc_conf *conf, const char *name,\n\t\t\t       const char *lxcpath,
      pid_t pid,\n\t\t\t       const char *controller)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3029,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3032,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3037,1
    - Dst: __cg_unified_attach
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3046,1
    - Dst: lxc_cmd_get_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3054,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3063,1
    - Dst: maybe_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3063,1
    - Dst: build_full_cgpath_from_monitorpath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3067,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3068,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3070,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - ops
    - conf
    - name
    - lxcpath
    - pid
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    - char*
    - char*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3023
    functionDepth: 10
    functionLinenumber: 3023
    functionLinenumberEnd: 3075
    functionName: cgfsng_attach
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strnprintf
    - INTTYPE_TO_STRLEN
    - ret_set_errno
    - lxc_cmd_get_cgroup_path
    - build_full_cgpath_from_monitorpath
    - maybe_empty
    - TRACE
    - __cg_unified_attach
    - log_error_errno
    - lxc_write_to_file
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_attach(struct cgroup_ops *ops,\n\t\t\t\t       const
      struct lxc_conf *conf,\n\t\t\t\t       const char *name, const char *lxcpath,\n\t\t\t\t
      \      pid_t pid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3092,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3094,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3096,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3098,1
    - Dst: lxc_cmd_get_limit_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3102,1
    - Dst: get_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3107,1
    - Dst: build_full_cgpath_from_monitorpath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3111,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - ops
    - filename
    - value
    - len
    - name
    - lxcpath
    argTypes:
    - struct cgroup_ops*
    - char*
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3116
      start: 3081
    functionDepth: 9
    functionLinenumber: 3081
    functionLinenumberEnd: 3116
    functionName: cgfsng_get
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - ret_set_errno
    - lxc_read_from_file
    - build_full_cgpath_from_monitorpath
    - strchr
    - strdup
    - get_hierarchy
    - lxc_cmd_get_limit_cgroup_path
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_get(struct cgroup_ops *ops, const char *filename,\n\t\t\t\t
      \    char *value, size_t len, const char *name,\n\t\t\t\t     const char *lxcpath)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - device
    - val
    argTypes:
    - struct device_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3141
      start: 3118
    functionDepth: 1
    functionLinenumber: 3118
    functionLinenumberEnd: 3141
    functionName: device_cgroup_parse_access
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int device_cgroup_parse_access(struct device_item *device, const char
      *val)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3150,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3155,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3176,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3182,1
    - Dst: memset
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3183,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3187,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3190,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3204,1
    - Dst: memset
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3205,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3209,1
    - Dst: lxc_safe_int
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3212,1
    - Dst: isspace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3218,1
    - Dst: device_cgroup_parse_access
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3221,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 3
    argNames:
    - device
    - key
    - val
    argTypes:
    - struct device_item*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3222
      start: 3143
    functionDepth: 2
    functionLinenumber: 3143
    functionLinenumberEnd: 3222
    functionName: device_cgroup_rule_parse
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - memset
    - lxc_safe_int
    - strequal
    - isdigit
    - isspace
    - device_cgroup_parse_access
    linkageType: ''
    returnType: int
    signature: "int device_cgroup_rule_parse(struct device_item *device, const char
      *key,\n\t\t\t\t    const char *val)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3238,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3238,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3239,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3239,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3240,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3242,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3244,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3246,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3250,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3250,1
    - Dst: device_cgroup_rule_parse
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3253,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3255,1
    - Dst: lxc_cmd_add_bpf_device_cgroup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3258,1
    - Dst: lxc_cmd_get_limit_cgroup_path
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3265,1
    - Dst: get_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3270,1
    - Dst: build_full_cgpath_from_monitorpath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3274,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3275,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3275,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 5
    argNames:
    - ops
    - key
    - value
    - name
    - lxcpath
    argTypes:
    - struct cgroup_ops*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3279
      start: 3228
    functionDepth: 9
    functionLinenumber: 3228
    functionLinenumberEnd: 3279
    functionName: cgfsng_set
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    - lxc_cmd_add_bpf_device_cgroup
    - pure_unified_layout
    - strlen
    - build_full_cgpath_from_monitorpath
    - strchr
    - is_empty_string
    - lxc_cmd_get_limit_cgroup_path
    - device_cgroup_rule_parse
    - get_hierarchy
    - strdup
    - log_error_errno
    - lxc_write_to_file
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_set(struct cgroup_ops *ops,\n\t\t\t\t     const
      char *key, const char *value,\n\t\t\t\t     const char *name, const char *lxcpath)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3297,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3299,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3322,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3326,1
    - Dst: device_cgroup_parse_access
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3328,1
    - Dst: stat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3331,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3333,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3344,1
    - Dst: MAJOR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3347,1
    - Dst: MINOR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3348,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - device
    - devpath
    argTypes:
    - struct device_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3352
      start: 3288
    functionDepth: 2
    functionLinenumber: 3288
    functionLinenumberEnd: 3352
    functionName: device_cgroup_rule_parse_devpath
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - stat
    - ret_errno
    - ret_set_errno
    - MAJOR
    - MINOR
    - device_cgroup_parse_access
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int device_cgroup_rule_parse_devpath(struct device_item *device,\n\t\t\t\t\t
      \   const char *devpath)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: device_cgroup_rule_parse_devpath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3359,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3363,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - invalue
    - dest
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3354
    functionDepth: 3
    functionLinenumber: 3354
    functionLinenumberEnd: 3372
    functionName: convert_devpath
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - device_cgroup_rule_parse_devpath
    - strnprintf
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int convert_devpath(const char *invalue, char *dest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3386,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3388,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3390,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3394,1
    - Dst: convert_devpath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3397,1
    - Dst: get_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3403,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3405,1
    - Dst: lxc_write_openat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3408,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3408,1
    - Dst: lxc_write_openat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3412,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - ops
    - filename
    - value
    - is_cpuset
    argTypes:
    - struct cgroup_ops*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3377
    functionDepth: 4
    functionLinenumber: 3377
    functionLinenumberEnd: 3413
    functionName: cg_legacy_set_data
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strequal
    - ret_errno
    - lxc_write_openat
    - strlen
    - strchr
    - convert_devpath
    - get_hierarchy
    - strdup
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: "int cg_legacy_set_data(struct cgroup_ops *ops, const char *filename,\n\t\t\t
      \     const char *value, bool is_cpuset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3421,1
    - Dst: list_for_each_entry_safe
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3425,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3426,1
    - Dst: list_move_tail
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3430,1
    - Dst: list_splice_tail
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3439
      start: 3419
    functionDepth: 3
    functionLinenumber: 3419
    functionLinenumberEnd: 3439
    functionName: sort_cgroup_settings
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - LIST_HEAD
    - strequal
    - list_for_each_entry_safe
    - list_splice_tail
    - list_move_tail
    linkageType: ''
    returnType: void
    signature: void sort_cgroup_settings(struct lxc_conf *conf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3449,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3452,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3455,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3459,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3461,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3462,1
    - Dst: sort_cgroup_settings
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3464,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3466,1
    - Dst: cg_legacy_set_data
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3467,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3467,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3469,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3472,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3475,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3479,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - ops
    - conf
    - do_devices
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3441
    functionDepth: 5
    functionLinenumber: 3441
    functionLinenumberEnd: 3481
    functionName: cgfsng_setup_limits_legacy
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - sort_cgroup_settings
    - strnequal
    - pure_unified_layout
    - ret_set_errno
    - log_warn_errno
    - cg_legacy_set_data
    - SYSERROR
    - INFO
    - DEBUG
    - SYSWARN
    - list_empty
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_setup_limits_legacy(struct cgroup_ops *ops,\n\t\t\t\t\t\t
      \   struct lxc_conf *conf,\n\t\t\t\t\t\t    bool do_devices)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3466,1
    - Dst: cg_legacy_set_data
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3467,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3467,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3469,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3472,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3465
    functionDepth: 5
    functionLinenumber: 3465
    functionLinenumberEnd: 3477
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 61
    functionsReached:
    - strnequal
    - SYSERROR
    - cg_legacy_set_data
    - DEBUG
    - SYSWARN
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(cgroup, cgroup_settings, head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3494,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3494,1
    - Dst: device_cgroup_rule_parse_devpath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3495,1
    - Dst: device_cgroup_rule_parse
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3497,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3499,1
    - Dst: bpf_list_add_device
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - ops
    - conf
    - key
    - val
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3487
    functionDepth: 3
    functionLinenumber: 3487
    functionLinenumberEnd: 3511
    functionName: bpf_device_cgroup_prepare
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - device_cgroup_rule_parse_devpath
    - syserror_set
    - strequal
    - abspath
    - bpf_list_add_device
    - device_cgroup_rule_parse
    linkageType: ''
    returnType: int
    signature: "int bpf_device_cgroup_prepare(struct cgroup_ops *ops,\n\t\t\t\t     struct
      lxc_conf *conf, const char *key,\n\t\t\t\t     const char *val)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3522,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3528,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3531,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3535,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3538,1
    - Dst: log_warn_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3539,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3548,1
    - Dst: bpf_device_cgroup_prepare
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3549,1
    - Dst: lxc_write_openat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3551,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3551,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3553,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3555,1
    - Dst: log_info
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3559
      start: 3513
    functionDepth: 4
    functionLinenumber: 3513
    functionLinenumberEnd: 3559
    functionName: cgfsng_setup_limits
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - log_info
    - strnequal
    - pure_unified_layout
    - ret_set_errno
    - log_warn_errno
    - lxc_write_openat
    - strlen
    - log_error_errno
    - bpf_device_cgroup_prepare
    - TRACE
    - list_empty
    linkageType: ''
    returnType: __cgfsng_ops
    signature: "__cgfsng_ops cgfsng_setup_limits(struct cgroup_ops *ops,\n\t\t\t\t\t
      \    struct lxc_handler *handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3548,1
    - Dst: bpf_device_cgroup_prepare
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3549,1
    - Dst: lxc_write_openat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3551,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3551,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3553,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3545
    functionDepth: 4
    functionLinenumber: 3545
    functionLinenumberEnd: 3556
    functionName: list_for_each_entry
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 61
    functionsReached:
    - strnequal
    - lxc_write_openat
    - strlen
    - bpf_device_cgroup_prepare
    - TRACE
    - log_error_errno
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(cgroup, cgroup_settings, head)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3567,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3573,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3576,1
    - Dst: device_utility_controller
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3580,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3581,1
    - Dst: bpf_cgroup_devices_attach
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3584,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ops
    - handler
    argTypes:
    - struct cgroup_ops*
    - struct lxc_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3585
      start: 3561
    functionDepth: 1
    functionLinenumber: 3561
    functionLinenumberEnd: 3585
    functionName: cgfsng_devices_activate
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - bpf_cgroup_devices_attach
    - ret_set_errno
    - list_empty
    - device_utility_controller
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_devices_activate(struct cgroup_ops *ops, struct
      lxc_handler *handler)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3597,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3611,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3612,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3617,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3618,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3621,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3624,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3634,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3640,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3641,1
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3643,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3643,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3644,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3646,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3648,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3650,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3652,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3654,1
    - Dst: close
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3656,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - ops
    - cgroup
    argTypes:
    - struct cgroup_ops*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3665
      start: 3587
    functionDepth: 2
    functionLinenumber: 3587
    functionLinenumberEnd: 3665
    functionName: __cgfsng_delegate_controllers
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - syserror
    - strlcat
    - syserror_set
    - close
    - STRLITERALLEN
    - strnequal
    - pure_unified_layout
    - strlen
    - abspath
    - open_at
    - TRACE
    - lxc_writeat
    - lxc_iterate_parts
    - strdup
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: bool __cgfsng_delegate_controllers(struct cgroup_ops *ops, const char
      *cgroup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3670,1
    - Dst: __cgfsng_delegate_controllers
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3673
      start: 3667
    functionDepth: 3
    functionLinenumber: 3667
    functionLinenumberEnd: 3673
    functionName: cgfsng_monitor_delegate_controllers
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - __cgfsng_delegate_controllers
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_monitor_delegate_controllers(struct cgroup_ops
      *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3678,1
    - Dst: __cgfsng_delegate_controllers
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3675
    functionDepth: 3
    functionLinenumber: 3675
    functionLinenumberEnd: 3681
    functionName: cgfsng_payload_delegate_controllers
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_set_errno
    - __cgfsng_delegate_controllers
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_payload_delegate_controllers(struct cgroup_ops
      *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3686
      start: 3683
    functionDepth: 0
    functionLinenumber: 3683
    functionLinenumberEnd: 3686
    functionName: unified_cgroup
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool unified_cgroup(const char *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3692,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3694,1
    - Dst: ERR_PTR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3695,1
    - Dst: prune_init_scope
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3699,1
    - Dst: deabs
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3702,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3704,1
    - Dst: ERR_PTR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - relative
    - line
    argTypes:
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3709
      start: 3688
    functionDepth: 1
    functionLinenumber: 3688
    functionLinenumberEnd: 3709
    functionName: current_unified_cgroup
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - prune_init_scope
    - deabs
    - STRLITERALLEN
    - abspath
    - ERR_PTR
    - strdup
    linkageType: ''
    returnType: char
    signature: char *current_unified_cgroup(bool relative, char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3713,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3713,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - controllers
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3716
      start: 3711
    functionDepth: 1
    functionLinenumber: 3711
    functionLinenumberEnd: 3716
    functionName: unprefix
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - strnequal
    - STRLITERALLEN
    linkageType: ''
    returnType: char
    signature: char *unprefix(const char *controllers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3732,1
    - Dst: list_add_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3735,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3740,1
    - Dst: syswarn_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3741,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3744,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3749,1
    - Dst: list_add_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3752,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - delegate
    argTypes:
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3718
    functionDepth: 3
    functionLinenumber: 3718
    functionLinenumberEnd: 3759
    functionName: __list_cgroup_delegate
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - syswarn_ret
    - list_add_string
    - read_file_at
    - strequal
    - move_ptr
    - lxc_iterate_parts
    linkageType: ''
    returnType: int
    signature: int __list_cgroup_delegate(char ***delegate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __list_cgroup_delegate
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3766,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3768,1
    - Dst: faccessat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3771,1
    - Dst: sysinfo_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3774,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - dfd_base
    - ret_files
    argTypes:
    - int
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3779
      start: 3761
    functionDepth: 4
    functionLinenumber: 3761
    functionLinenumberEnd: 3779
    functionName: unified_hierarchy_delegated
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - faccessat
    - move_ptr
    - syserror_ret
    - __list_cgroup_delegate
    - sysinfo_ret
    linkageType: ''
    returnType: bool
    signature: bool unified_hierarchy_delegated(int dfd_base, char ***ret_files)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: faccessat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3785,1
    - Dst: sysinfo_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - dfd_base
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3781
    functionDepth: 1
    functionLinenumber: 3781
    functionLinenumberEnd: 3790
    functionName: legacy_hierarchy_delegated
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - faccessat
    - sysinfo_ret
    linkageType: ''
    returnType: bool
    signature: bool legacy_hierarchy_delegated(int dfd_base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3837,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3840,1
    - Dst: unprefix
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - controllers
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3833
    functionDepth: 2
    functionLinenumber: 3833
    functionLinenumberEnd: 3844
    functionName: stable_order
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - unprefix
    - strequal
    linkageType: ''
    returnType: char
    signature: char *stable_order(const char *controllers)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: unpriv_systemd_create_scope
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3857,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3859,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3861,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3867,1
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3868,1
    - Dst: read_file_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3870,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3872,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3874,1
    - Dst: unified_cgroup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3884,1
    - Dst: cgroup_relpath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3891,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3892,1
    - Dst: current_unified_cgroup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3893,1
    - Dst: IS_ERR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3894,1
    - Dst: PTR_ERR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3895,1
    - Dst: unified_cgroup_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3897,1
    - Dst: dup_cloexec
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3898,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3901,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3909,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3911,1
    - Dst: fhas_fs_type
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3915,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3916,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3922,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3923,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3928,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3931,1
    - Dst: unified_hierarchy_delegated
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3938,1
    - Dst: unified_controllers
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3941,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3943,1
    - Dst: list_new
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3944,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3946,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3949,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3951,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3958,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3960,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3963,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3965,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3969,1
    - Dst: stable_order
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3969,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3971,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3973,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3979,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3982,1
    - Dst: fhas_fs_type
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3986,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3987,1
    - Dst: abspath
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3993,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3994,1
    - Dst: prune_init_scope
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:3998,1
    - Dst: deabs
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4001,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4003,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4005,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4007,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4008,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4013,1
    - Dst: SYSTRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4016,1
    - Dst: legacy_hierarchy_delegated
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4023,1
    - Dst: list_add_controllers
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4031,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4033,1
    - Dst: skip_hierarchy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4035,1
    - Dst: cgroup_hierarchy_add
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4041,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4044,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4047,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4048,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4049,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4050,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4051,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4053,1
    - Dst: bpf_devices_cgroup_supported
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4061,1
    - Dst: controllers_available
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4089,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4090,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 152
    argCount: 4
    argNames:
    - ops
    - relative
    - unprivileged
    - conf
    argTypes:
    - struct cgroup_ops*
    - bool
    - bool
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 3849
    functionDepth: 6
    functionLinenumber: 3849
    functionLinenumberEnd: 4093
    functionName: __initialize_cgroups
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - prune_init_scope
    - syserror
    - fhas_fs_type
    - unified_controllers
    - syserror_set
    - list_new
    - lxc_iterate_parts
    - strchr
    - open_at
    - unified_cgroup
    - dup_cloexec
    - cgroup_hierarchy_add
    - controllers_available
    - move_fd
    - IS_ERR
    - unpriv_systemd_create_scope
    - PTR_ERR
    - move_ptr
    - abspath
    - is_empty_string
    - unified_hierarchy_delegated
    - geteuid
    - TRACE
    - legacy_hierarchy_delegated
    - syserror_ret
    - bpf_devices_cgroup_supported
    - deabs
    - IS_ERR_OR_NULL
    - read_file_at
    - ret_errno
    - ret_set_errno
    - skip_hierarchy
    - cgroup_relpath
    - list_add_controllers
    - current_unified_cgroup
    - SYSTRACE
    - strdup
    - unified_cgroup_fd
    - stable_order
    linkageType: ''
    returnType: int
    signature: "int __initialize_cgroups(struct cgroup_ops *ops, bool relative,\n\t\t\t\tbool
      unprivileged, struct lxc_conf *conf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4102,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4109,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4112,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4114,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4119,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4123,1
    - Dst: list_add_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4124,1
    - Dst: __initialize_cgroups
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4137,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4137,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4139,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - ops
    - conf
    argTypes:
    - struct cgroup_ops*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4144
      start: 4095
    functionDepth: 7
    functionLinenumber: 4095
    functionLinenumberEnd: 4144
    functionName: initialize_cgroups
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - syserror
    - list_add_string
    - ret_errno
    - open_at
    - __initialize_cgroups
    - lxc_global_config_value
    - syserror_ret
    - move_fd
    - lxc_iterate_parts
    - strdup
    - list_empty
    linkageType: ''
    returnType: int
    signature: int initialize_cgroups(struct cgroup_ops *ops, struct lxc_conf *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4151,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4154,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4155,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4156,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4146
    functionDepth: 3
    functionLinenumber: 4146
    functionLinenumberEnd: 4162
    functionName: cgfsng_data_init
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - strequal
    - ret_set_errno
    - lxc_global_config_value
    - strdup
    linkageType: ''
    returnType: __cgfsng_ops
    signature: __cgfsng_ops cgfsng_data_init(struct cgroup_ops *ops)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4168,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4170,1
    - Dst: initialize_cgroups
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4175,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4164
    functionDepth: 8
    functionLinenumber: 4164
    functionLinenumberEnd: 4208
    functionName: cgroup_ops_init
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - initialize_cgroups
    - zalloc
    - move_ptr
    - ret_set_errno
    linkageType: ''
    returnType: struct cgroup_ops
    signature: struct cgroup_ops *cgroup_ops_init(struct lxc_conf *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4214,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4219,1
    - Dst: socketpair
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4223,1
    - Dst: userns_exec_minimal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4227,1
    - Dst: cgroup_attach_leaf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - conf
    - lxcpath
    - fd_unified
    - pid
    argTypes:
    - struct lxc_conf*
    - char*
    - int
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4237
      start: 4210
    functionDepth: 5
    functionLinenumber: 4210
    functionLinenumberEnd: 4237
    functionName: __unified_attach_fd
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - userns_exec_minimal
    - socketpair
    - am_guest_unpriv
    - cgroup_attach_leaf
    - list_empty
    linkageType: ''
    returnType: int
    signature: int __unified_attach_fd(const struct lxc_conf *conf, const char *lxcpath,
      int fd_unified, pid_t pid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4242,1
    - Dst: INTTYPE_TO_STRLEN
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4246,1
    - Dst: lxc_cmd_get_cgroup_ctx
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4248,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4250,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4253,1
    - Dst: cgroup_layout_name
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4254,1
    - Dst: strnprintf
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4256,1
    - Dst: unified_cgroup_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4263,1
    - Dst: __unified_attach_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4264,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4266,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4268,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4270,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4273,1
    - Dst: cgroup_layout_name
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - conf
    - name
    - lxcpath
    - pid
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4275
      start: 4239
    functionDepth: 8
    functionLinenumber: 4239
    functionLinenumberEnd: 4275
    functionName: __cgroup_attach_many
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_cmd_get_cgroup_ctx
    - strnprintf
    - __unified_attach_fd
    - ret_errno
    - INTTYPE_TO_STRLEN
    - cgroup_layout_name
    - log_trace
    - TRACE
    - lxc_writeat
    - syserror_ret
    - call_cleaner
    - unified_cgroup_fd
    linkageType: ''
    returnType: int
    signature: "int __cgroup_attach_many(const struct lxc_conf *conf, const char *name,\n\t\t\t\tconst
      char *lxcpath, pid_t pid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4282,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4282,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4283,1
    - Dst: lxc_cmd_get_cgroup2_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4285,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4287,1
    - Dst: __unified_attach_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - conf
    - name
    - lxcpath
    - pid
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4277
    functionDepth: 8
    functionLinenumber: 4277
    functionLinenumberEnd: 4290
    functionName: __cgroup_attach_unified
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - is_empty_string
    - __unified_attach_fd
    - lxc_cmd_get_cgroup2_fd
    - ret_errno
    linkageType: ''
    returnType: int
    signature: "int __cgroup_attach_unified(const struct lxc_conf *conf, const char
      *name,\n\t\t\t\t   const char *lxcpath, pid_t pid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cgroup_attach_many
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4297,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4299,1
    - Dst: __cgroup_attach_unified
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4302,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4303,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - conf
    - name
    - lxcpath
    - pid
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4308
      start: 4292
    functionDepth: 9
    functionLinenumber: 4292
    functionLinenumberEnd: 4308
    functionName: cgroup_attach
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 2
    functionsReached:
    - ret_errno
    - __cgroup_attach_many
    - __cgroup_attach_unified
    - ERRNO_IS_NOT_SUPPORTED
    linkageType: ''
    returnType: int
    signature: "int cgroup_attach(const struct lxc_conf *conf, const char *name,\n\t\t
      \ const char *lxcpath, pid_t pid)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4320,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4320,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4321,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4322,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4325,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4327,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4330,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4331,1
    - Dst: lxc_cmd_get_limit_cgroup_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4333,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4335,1
    - Dst: lxc_cmd_get_limit_cgroup2_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4338,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4340,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4343,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4346,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4348,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4350,1
    - Dst: cgroup_hierarchy_name
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4350,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4352,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4353,1
    - Dst: lxc_read_try_buf_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4355,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 5
    argNames:
    - name
    - lxcpath
    - key
    - buf
    - len
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4358
      start: 4311
    functionDepth: 8
    functionLinenumber: 4311
    functionLinenumberEnd: 4358
    functionName: cgroup_get
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - lxc_read_try_buf_at
    - lxc_cmd_get_limit_cgroup_fd
    - ret_errno
    - strequal
    - strlcpy
    - cgroup_hierarchy_name
    - is_empty_string
    - TRACE
    - lxc_cmd_get_limit_cgroup2_fd
    - move_fd
    - strcspn
    - ERRNO_IS_NOT_SUPPORTED
    linkageType: ''
    returnType: int
    signature: int cgroup_get(const char *name, const char *lxcpath, const char *key,
      char *buf, size_t len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4370,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4370,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4371,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4371,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4372,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4374,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4377,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4378,1
    - Dst: lxc_cmd_get_limit_cgroup_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4380,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4382,1
    - Dst: lxc_cmd_get_limit_cgroup2_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4385,1
    - Dst: ERRNO_IS_NOT_SUPPORTED
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4387,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4390,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4393,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4395,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4397,1
    - Dst: cgroup_hierarchy_name
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4397,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4399,1
    - Dst: device_cgroup_rule_parse
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4402,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4404,1
    - Dst: lxc_cmd_add_bpf_device_cgroup
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4407,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4409,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4409,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - name
    - lxcpath
    - key
    - value
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4361
    functionDepth: 8
    functionLinenumber: 4361
    functionLinenumberEnd: 4413
    functionName: cgroup_set
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - lxc_cmd_get_limit_cgroup_fd
    - ret_errno
    - strequal
    - lxc_cmd_add_bpf_device_cgroup
    - strlcpy
    - cgroup_hierarchy_name
    - log_error_errno
    - strlen
    - is_empty_string
    - device_cgroup_rule_parse
    - TRACE
    - lxc_cmd_get_limit_cgroup2_fd
    - lxc_writeat
    - move_fd
    - strcspn
    - ERRNO_IS_NOT_SUPPORTED
    linkageType: ''
    returnType: int
    signature: int cgroup_set(const char *name, const char *lxcpath, const char *key,
      const char *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: call_cleaner
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4423,1
    - Dst: lxc_mainloop_open
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4428,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4430,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4435,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4437,1
    - Dst: lxc_mainloop_add_handler_events
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4439,1
    - Dst: INT_TO_PTR
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4442,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4445,1
    - Dst: lxc_writeat
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4448,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4450,1
    - Dst: lxc_mainloop
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4453,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4455,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - unified_fd
    - state_string
    - state_num
    - timeout
    - epoll_error
    - wait_error
    argTypes:
    - int
    - char*
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4459
      start: 4415
    functionDepth: 5
    functionLinenumber: 4415
    functionLinenumberEnd: 4459
    functionName: do_cgroup_freeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - lxc_mainloop_open
    - INT_TO_PTR
    - open_at
    - lxc_mainloop
    - log_trace
    - lxc_writeat
    - call_cleaner
    - log_error_errno
    - lxc_mainloop_add_handler_events
    linkageType: ''
    returnType: int
    signature: "int do_cgroup_freeze(int unified_fd,\n\t\t\t    const char *state_string,\n\t\t\t
      \   int state_num,\n\t\t\t    int timeout,\n\t\t\t    const char *epoll_error,\n\t\t\t
      \   const char *wait_error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_cgroup_freeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unified_fd
    - timeout
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4466
      start: 4461
    functionDepth: 6
    functionLinenumber: 4461
    functionLinenumberEnd: 4466
    functionName: __cgroup_freeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 0
    functionsReached:
    - do_cgroup_freeze
    linkageType: ''
    returnType: int
    signature: int __cgroup_freeze(int unified_fd, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4473,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4473,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4474,1
    - Dst: lxc_cmd_get_limit_cgroup2_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4476,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4478,1
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4480,1
    - Dst: __cgroup_freeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4481,1
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - name
    - lxcpath
    - timeout
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4484
      start: 4468
    functionDepth: 8
    functionLinenumber: 4468
    functionLinenumberEnd: 4484
    functionName: cgroup_freeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 3
    functionsReached:
    - __cgroup_freeze
    - ret_errno
    - is_empty_string
    - lxc_cmd_notify_state_listeners
    - lxc_cmd_get_limit_cgroup2_fd
    linkageType: ''
    returnType: int
    signature: int cgroup_freeze(const char *name, const char *lxcpath, int timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_cgroup_freeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unified_fd
    - timeout
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4486
    functionDepth: 6
    functionLinenumber: 4486
    functionLinenumberEnd: 4491
    functionName: __cgroup_unfreeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 1
    functionsReached:
    - do_cgroup_freeze
    linkageType: ''
    returnType: int
    signature: int __cgroup_unfreeze(int unified_fd, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4498,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4498,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4499,1
    - Dst: lxc_cmd_get_limit_cgroup2_fd
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4501,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4503,1
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4505,1
    - Dst: __cgroup_unfreeze
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4506,1
    - Dst: lxc_cmd_notify_state_listeners
      Src: /src/lxc/src/lxc/cgroups/cgfsng.c:4507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - name
    - lxcpath
    - timeout
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4509
      start: 4493
    functionDepth: 8
    functionLinenumber: 4493
    functionLinenumberEnd: 4509
    functionName: cgroup_unfreeze
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgfsng.c
    functionUses: 3
    functionsReached:
    - ret_errno
    - is_empty_string
    - lxc_cmd_notify_state_listeners
    - lxc_cmd_get_limit_cgroup2_fd
    - __cgroup_unfreeze
    linkageType: ''
    returnType: int
    signature: int cgroup_unfreeze(const char *name, const char *lxcpath, int timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstatfs
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:28,1
    - Dst: lxc_is_fs_type
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: unified_cgroup_fd
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup_utils.c
    functionUses: 2
    functionsReached:
    - lxc_is_fs_type
    - fstatfs
    linkageType: ''
    returnType: bool
    signature: bool unified_cgroup_fd(int fd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:46,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:46,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:47,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:53,1
    - Dst: dup_cloexec
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:58,1
    - Dst: fdopendir
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:62,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:67,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:69,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:72,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:73,1
    - Dst: fstatat
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:76,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:81,1
    - Dst: cgroup_tree_prune
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:84,1
    - Dst: unlinkat
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:89,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - dfd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 94
    functionName: cgroup_tree_prune
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup_utils.c
    functionUses: 5
    functionsReached:
    - dup_cloexec
    - fstatat
    - readdir
    - ret_errno
    - strequal
    - S_ISDIR
    - is_empty_string
    - open_at
    - fdopendir
    - move_fd
    - unlinkat
    - cgroup_tree_prune
    linkageType: ''
    returnType: int
    signature: int cgroup_tree_prune(int dfd, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abspath
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:108,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:109,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:111,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:112,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:115,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgroup_utils.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 123
    functionName: prune_init_scope
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup_utils.c
    functionUses: 2
    functionsReached:
    - strequal
    - STRLITERALLEN
    - ret_set_errno
    - strlen
    - abspath
    linkageType: ''
    returnType: char
    signature: char *prune_init_scope(char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:46,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:48,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:50,1
    - Dst: memset
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:52,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - prog
    - instructions
    - count
    argTypes:
    - struct bpf_program*
    - struct bpf_insn*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: bpf_program_add_instructions
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - realloc
    - memcpy
    - log_error_errno
    - memset
    linkageType: ''
    returnType: int
    signature: "int bpf_program_add_instructions(struct bpf_program *prog,\n\t\t\t\t\tconst
      struct bpf_insn *instructions,\n\t\t\t\t\tsize_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - SIZE
    - ','
    - DST
    - ','
    - SRC
    - ','
    - 'OFF'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: BPF_LDX_MEM
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_LDX_MEM(SIZE, DST, SRC, OFF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OP
    - ','
    - DST
    - ','
    - IMM
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: BPF_ALU32_IMM
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_ALU32_IMM(OP, DST, IMM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - IMM
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: BPF_MOV64_IMM
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_MOV64_IMM(DST, IMM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: BPF_MOV32_REG
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_MOV32_REG(DST, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - OP
    - ','
    - DST
    - ','
    - SRC
    - ','
    - 'OFF'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: BPF_JMP_REG
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_JMP_REG(OP, DST, SRC, OFF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - OP
    - ','
    - DST
    - ','
    - IMM
    - ','
    - 'OFF'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: BPF_JMP_IMM
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_JMP_IMM(OP, DST, IMM, OFF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: BPF_EXIT_INSN
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_EXIT_INSN()
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - acc
    - mask
    argTypes:
    - char*
    - __u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: bpf_access_mask
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bpf_access_mask(const char *acc, __u32 *mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: bpf_device_type
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bpf_device_type(char type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - access_mask
    argTypes:
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: bpf_device_all_access
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bpf_device_all_access(__u32 access_mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zalloc
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:163,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:165,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - prog_type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: bpf_program_new
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - zalloc
    - move_ptr
    - ret_set_errno
    linkageType: ''
    returnType: struct bpf_program
    signature: struct bpf_program *bpf_program_new(uint32_t prog_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BPF_LDX_MEM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:182,1
    - Dst: BPF_ALU32_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:183,1
    - Dst: BPF_LDX_MEM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:186,1
    - Dst: BPF_ALU32_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:187,1
    - Dst: BPF_LDX_MEM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:190,1
    - Dst: BPF_LDX_MEM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:193,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:197,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:199,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prog
    argTypes:
    - struct bpf_program*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 200
    functionName: bpf_program_init
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - BPF_ALU32_IMM
    - BPF_LDX_MEM
    - ret_set_errno
    - bpf_program_add_instructions
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int bpf_program_init(struct bpf_program *prog)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:210,1
    - Dst: bpf_access_mask
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:212,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:214,1
    - Dst: bpf_device_all_access
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:216,1
    - Dst: bpf_device_type
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:219,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:221,1
    - Dst: bpf_device_all_access
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:232,1
    - Dst: BPF_MOV32_REG
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:234,1
    - Dst: BPF_ALU32_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:235,1
    - Dst: BPF_JMP_REG
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:236,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:239,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:239,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:241,1
    - Dst: BPF_JMP_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:246,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:249,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:249,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:251,1
    - Dst: BPF_JMP_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:256,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:259,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:259,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:261,1
    - Dst: BPF_JMP_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:266,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:269,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:269,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:271,1
    - Dst: BPF_MOV64_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:274,1
    - Dst: BPF_EXIT_INSN
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:275,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:276,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:277,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:279,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - prog
    - device
    argTypes:
    - struct bpf_program*
    - struct device_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 282
    functionName: bpf_program_append_device
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - bpf_access_mask
    - BPF_ALU32_IMM
    - BPF_JMP_REG
    - BPF_EXIT_INSN
    - ret_set_errno
    - BPF_MOV32_REG
    - bpf_program_add_instructions
    - BPF_JMP_IMM
    - bpf_device_type
    - BPF_MOV64_IMM
    - ARRAY_SIZE
    - log_error_errno
    - bpf_device_all_access
    linkageType: ''
    returnType: int
    signature: int bpf_program_append_device(struct bpf_program *prog, struct device_item
      *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:289,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:291,1
    - Dst: BPF_MOV64_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:296,1
    - Dst: BPF_EXIT_INSN
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:297,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:298,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - prog
    argTypes:
    - struct bpf_program*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 299
    functionName: bpf_program_finalize
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - BPF_EXIT_INSN
    - ret_set_errno
    - bpf_program_add_instructions
    - TRACE
    - BPF_MOV64_IMM
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int bpf_program_finalize(struct bpf_program *prog)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lxc_log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:310,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:311,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:313,1
    - Dst: PTR_TO_U64
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:322,1
    - Dst: PTR_TO_U64
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:324,1
    - Dst: PTR_TO_U64
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:325,1
    - Dst: bpf
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:330,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:332,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - prog
    argTypes:
    - struct bpf_program*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 337
    functionName: bpf_program_load_kernel
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - WARN
    - bpf
    - PTR_TO_U64
    - TRACE
    - zalloc
    - log_error_errno
    - lxc_log_trace
    linkageType: ''
    returnType: int
    signature: int bpf_program_load_kernel(struct bpf_program *prog)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:347,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:350,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:353,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:361,1
    - Dst: dup_cloexec
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:364,1
    - Dst: bpf_program_load_kernel
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:368,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:370,1
    - Dst: bpf
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:379,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:381,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:383,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - prog
    - type
    - fd_cgroup
    - flags
    argTypes:
    - struct bpf_program*
    - int
    - int
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 389
    functionName: bpf_program_cgroup_attach
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - dup_cloexec
    - syserror
    - syserror_set
    - ret_errno
    - bpf
    - INFO
    - TRACE
    - move_fd
    - bpf_program_load_kernel
    linkageType: ''
    returnType: int
    signature: "int bpf_program_cgroup_attach(struct bpf_program *prog, int type,\n\t\t\t\t
      \    int fd_cgroup, __u32 flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:401,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:402,1
    - Dst: bpf
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:413,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:415,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - prog
    argTypes:
    - struct bpf_program*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 420
    functionName: bpf_program_cgroup_detach
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 2
    functionsReached:
    - bpf
    - TRACE
    - syserror
    - move_fd
    linkageType: ''
    returnType: int
    signature: int bpf_program_cgroup_detach(struct bpf_program *prog)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bpf_program_cgroup_detach
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:425,1
    - Dst: bpf_program_free
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct cgroup_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: bpf_device_program_free
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 1
    functionsReached:
    - bpf_program_cgroup_detach
    - bpf_program_free
    linkageType: ''
    returnType: void
    signature: void bpf_device_program_free(struct cgroup_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bpf_devices
    argTypes:
    - struct bpf_devices*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: bpf_device_list_block_all
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool bpf_device_list_block_all(const struct bpf_devices *bpf_devices)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bpf_device_list_block_all
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:441,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:442,1
    - Dst: bpf_device_list_block_all
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:445,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - bpf_devices
    - device
    argTypes:
    - struct bpf_devices*
    - struct device_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 449
    functionName: bpf_device_add
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - log_trace
    - bpf_device_list_block_all
    linkageType: ''
    returnType: bool
    signature: "bool bpf_device_add(const struct bpf_devices *bpf_devices,\n\t\t\t\t
      \ struct device_item *device)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:458,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:464,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:467,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:470,1
    - Dst: lxc_clear_cgroup2_devices
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:474,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:475,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:479,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:482,1
    - Dst: strequal
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:489,1
    - Dst: bpf_device_add
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:492,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:502,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:506,1
    - Dst: memdup
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:509,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:511,1
    - Dst: list_add
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:513,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:514,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:516,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - bpf_devices
    - device
    argTypes:
    - struct bpf_devices*
    - struct device_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 518
    functionName: bpf_list_add_device
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 1
    functionsReached:
    - list_add
    - ret_errno
    - strequal
    - syserror_set
    - move_ptr
    - is_empty_string
    - log_trace
    - TRACE
    - bpf_device_add
    - list_for_each_entry
    - lxc_clear_cgroup2_devices
    - memdup
    linkageType: ''
    returnType: int
    signature: "int bpf_list_add_device(struct bpf_devices *bpf_devices,\n\t\t\tstruct
      device_item *device)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BPF_MOV64_IMM
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:524,1
    - Dst: BPF_EXIT_INSN
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:525,1
    - Dst: geteuid
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:529,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:530,1
    - Dst: bpf
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:533,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:535,1
    - Dst: bpf_program_new
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:537,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:539,1
    - Dst: bpf_program_init
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:541,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:543,1
    - Dst: bpf_program_add_instructions
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:545,1
    - Dst: ARRAY_SIZE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:545,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:547,1
    - Dst: bpf_program_load_kernel
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:549,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:551,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:553,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 554
    functionName: bpf_devices_cgroup_supported
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 1
    functionsReached:
    - bpf_program_new
    - bpf
    - BPF_EXIT_INSN
    - bpf_program_init
    - log_trace
    - geteuid
    - bpf_program_add_instructions
    - BPF_MOV64_IMM
    - ARRAY_SIZE
    - bpf_program_load_kernel
    - log_error_errno
    linkageType: ''
    returnType: bool
    signature: bool bpf_devices_cgroup_supported(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bpf_program_new
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:562,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:564,1
    - Dst: bpf_program_init
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:566,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:568,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:571,1
    - Dst: bpf_device_list_block_all
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:572,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:574,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:575,1
    - Dst: bpf_device_add
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:578,1
    - Dst: bpf_program_append_device
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:581,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:583,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:585,1
    - Dst: bpf_program_finalize
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:588,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:590,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - bpf_devices
    argTypes:
    - struct bpf_devices*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 593
    functionName: __bpf_cgroup_devices
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 0
    functionsReached:
    - bpf_program_new
    - bpf_program_finalize
    - move_ptr
    - bpf_program_init
    - TRACE
    - bpf_device_add
    - syserror_ret
    - list_for_each_entry
    - bpf_program_append_device
    - bpf_device_list_block_all
    linkageType: ''
    returnType: struct bpf_program
    signature: struct bpf_program *__bpf_cgroup_devices(struct bpf_devices *bpf_devices)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __bpf_cgroup_devices
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:601,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:603,1
    - Dst: bpf_program_cgroup_attach
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:605,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:609,1
    - Dst: swap
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:612,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ops
    - bpf_devices
    argTypes:
    - struct cgroup_ops*
    - struct bpf_devices*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 614
    functionName: bpf_cgroup_devices_attach
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 1
    functionsReached:
    - __bpf_cgroup_devices
    - bpf_program_cgroup_attach
    - log_trace
    - syserror_ret
    - swap
    linkageType: ''
    returnType: bool
    signature: "bool bpf_cgroup_devices_attach(struct cgroup_ops *ops,\n\t\t\t       struct
      bpf_devices *bpf_devices)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:627,1
    - Dst: pure_unified_layout
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:629,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:630,1
    - Dst: ret_set_errno
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:633,1
    - Dst: bpf_list_add_device
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:640,1
    - Dst: log_trace
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:645,1
    - Dst: bpf_cgroup_devices_attach
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:650,1
    - Dst: __bpf_cgroup_devices
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:652,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:654,1
    - Dst: bpf_program_load_kernel
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:656,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:658,1
    - Dst: bpf
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:671,1
    - Dst: bpf
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:677,1
    - Dst: bpf
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:686,1
    - Dst: syserror_ret
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:690,1
    - Dst: close_prot_errno_disarm
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:694,1
    - Dst: move_fd
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:696,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:697,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:699,1
    - Dst: swap
      Src: /src/lxc/src/lxc/cgroups/cgroup2_devices.c:703,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - ops
    - bpf_devices
    - new
    argTypes:
    - struct cgroup_ops*
    - struct bpf_devices*
    - struct device_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 706
    functionName: bpf_cgroup_devices_update
    functionSourceFile: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
    functionUses: 1
    functionsReached:
    - bpf_cgroup_devices_attach
    - __bpf_cgroup_devices
    - close_prot_errno_disarm
    - bpf
    - pure_unified_layout
    - ret_set_errno
    - log_trace
    - TRACE
    - syserror_ret
    - move_fd
    - bpf_list_add_device
    - swap
    - bpf_program_load_kernel
    linkageType: ''
    returnType: bool
    signature: "bool bpf_cgroup_devices_update(struct cgroup_ops *ops,\n\t\t\t       struct
      bpf_devices *bpf_devices,\n\t\t\t       struct device_item *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stream
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: pam_cgfs_debug_stream
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pam_cgfs_debug_stream(stream, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: pam_cgfs_error
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pam_cgfs_error(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: pam_cgfs_debug
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pam_cgfs_debug(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: pam_cgfs_debug
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pam_cgfs_debug(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:191,1
    - Dst: mkdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:192,1
    - Dst: umask
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: do_mkdir
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - umask
    - mkdir
    linkageType: ''
    returnType: int
    signature: int do_mkdir(const char *path, mode_t mode)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:204,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:204,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:207,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:207,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:210,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:225,1
    - Dst: do_mkdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:228,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:229,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:229,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - root
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 242
    functionName: lxc_mkdir_parent
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - do_mkdir
    - strerror
    - strlen
    - pam_cgfs_debug
    - file_exists
    linkageType: ''
    returnType: bool
    signature: bool lxc_mkdir_parent(const char *root, char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:249,1
    - Dst: openlog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:252,1
    - Dst: vsyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:253,1
    - Dst: va_end
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:255,1
    - Dst: closelog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - err
    - format
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: mysyslog
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - closelog
    - va_start
    - vsyslog
    - va_end
    - openlog
    linkageType: ''
    returnType: void
    signature: void mysyslog(int err, const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - mem
    - oldlen
    - newlen
    argTypes:
    - char**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: batch_realloc
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 1
    functionsReached:
    - must_realloc
    linkageType: ''
    returnType: void
    signature: void batch_realloc(char **mem, size_t oldlen, size_t newlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: batch_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:275,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:277,1
    - Dst: newlen::newlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dest
    - oldlen
    - new
    - newlen
    argTypes:
    - char**
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: append_line
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 1
    functionsReached:
    - batch_realloc
    - memcpy
    - newlen::newlen
    linkageType: ''
    returnType: void
    signature: void append_line(char **dest, size_t oldlen, char *new, size_t newlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:288,1
    - Dst: getline
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:292,1
    - Dst: append_line
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:293,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:297,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fnam
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 301
    functionName: read_file
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 1
    functionsReached:
    - append_line
    - fclose
    - free
    - getline
    - fopen
    linkageType: ''
    returnType: char
    signature: char *read_file(char *fnam)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - void***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 320
    functionName: append_null_to_list
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 1
    functionsReached:
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int append_null_to_list(void ***list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_null_to_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:330,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - list
    - entry
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: must_append_string
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - append_null_to_list
    - must_copy_string
    linkageType: ''
    returnType: void
    signature: void must_append_string(char ***list, char *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: trim
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 5
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void trim(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:350,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:355,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 360
    functionName: copy_to_eol
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - must_realloc
    - memcpy
    - strchr
    linkageType: ''
    returnType: char
    signature: char *copy_to_eol(char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:365,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: is_lxcfs
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strstr
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool is_lxcfs(const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:375,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: is_cgv1
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strstr
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool is_cgv1(char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:385,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: is_cgv2
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strstr
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool is_cgv2(char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - list
    - entry
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: string_in_list
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 4
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool string_in_list(char **list, const char *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:416,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:418,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:419,1
    - Dst: must_add_to_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:420,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 425
    functionName: make_string_list
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - strtok_r
    - must_add_to_list
    - must_copy_string
    linkageType: ''
    returnType: char
    signature: char **make_string_list(const char *str, const char *sep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: string_list_length
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t string_list_length(char **list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:445,1
    - Dst: fprintf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:449,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - path
    - v
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 456
    functionName: write_int
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - fclose
    - fopen
    - fprintf
    linkageType: ''
    returnType: bool
    signature: bool write_int(char *path, int v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:465,1
    - Dst: readdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:469,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:473,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:474,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:477,1
    - Dst: lstat
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:479,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:481,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:486,1
    - Dst: recursive_rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:489,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:493,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:496,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:498,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:498,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - dirname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 503
    functionName: recursive_rmdir
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 3
    functionsReached:
    - strcmp
    - opendir
    - readdir
    - free
    - strerror
    - pam_cgfs_debug
    - S_ISDIR
    - lstat
    - rmdir
    - must_make_path
    - recursive_rmdir
    linkageType: ''
    returnType: int
    signature: int recursive_rmdir(char *dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append_null_to_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:512,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - clist
    - entry
    argTypes:
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: must_add_to_list
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 1
    functionsReached:
    - append_null_to_list
    - must_copy_string
    linkageType: ''
    returnType: void
    signature: void must_add_to_list(char ***clist, char *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:526,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:532,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:536,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:537,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 542
    functionName: get_mountpoint
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - must_realloc
    - strlen
    - memcpy
    - strchr
    linkageType: ''
    returnType: char
    signature: char *get_mountpoint(char *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:554,1
    - Dst: getline
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:558,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:562,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:567,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:576,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:577,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:578,1
    - Dst: must_append_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:579,1
    - Dst: must_append_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:581,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:585,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:586,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - klist
    - nlist
    argTypes:
    - char***
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 589
    functionName: cgv1_get_controllers
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - must_append_string
    - fclose
    - strncmp
    - free
    - strtok_r
    - strchr
    - getline
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool cgv1_get_controllers(char ***klist, char ***nlist)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:611,1
    - Dst: read_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:615,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:619,1
    - Dst: copy_to_eol
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:624,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:629,1
    - Dst: trim
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:631,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 634
    functionName: cgv2_get_current_cgroup
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - trim
    - read_file
    - copy_to_eol
    - free
    - strstr
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *cgv2_get_current_cgroup(int pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 651
    functionName: cgv1_controller_lists_intersect
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - string_in_list
    linkageType: ''
    returnType: bool
    signature: bool cgv1_controller_lists_intersect(char **l1, char **l2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_controller_lists_intersect
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - hlist
    - clist
    argTypes:
    - struct cgv1_hierarchy**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 668
    functionName: cgv1_controller_list_is_dup
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_controller_lists_intersect
    linkageType: ''
    returnType: bool
    signature: bool cgv1_controller_list_is_dup(struct cgv1_hierarchy **hlist, char
      **clist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_controller_lists_intersect
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:679,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - clist
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: cgv1_mark_to_make_rw
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - string_in_list
    - cgv1_controller_lists_intersect
    linkageType: ''
    returnType: void
    signature: void cgv1_mark_to_make_rw(char **clist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:689,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - clist
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: cgv2_mark_to_make_rw
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - string_in_list
    linkageType: ''
    returnType: void
    signature: void cgv2_mark_to_make_rw(char **clist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_mark_to_make_rw
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:697,1
    - Dst: cgv2_mark_to_make_rw
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clist
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: cg_mark_to_make_rw
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_mark_to_make_rw
    - cgv2_mark_to_make_rw
    linkageType: ''
    returnType: void
    signature: void cg_mark_to_make_rw(char **clist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:708,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:709,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:711,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - entry
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 718
    functionName: cgv1_must_prefix_named
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - strlen
    - snprintf
    - must_realloc
    linkageType: ''
    returnType: char
    signature: char *cgv1_must_prefix_named(char *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:726,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:726,1
    - Dst: append_null_to_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:729,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:731,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:732,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:733,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:734,1
    - Dst: cgv1_must_prefix_named
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - klist
    - nlist
    - clist
    - entry
    argTypes:
    - char**
    - char**
    - char***
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 739
    functionName: must_append_controller
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_must_prefix_named
    - strncmp
    - must_copy_string
    - append_null_to_list
    - string_in_list
    linkageType: ''
    returnType: void
    signature: void must_append_controller(char **klist, char **nlist, char ***clist,
      char *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:756,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:762,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:767,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:772,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:773,1
    - Dst: must_append_controller
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 777
    functionName: cgv1_get_proc_mountinfo_controllers
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - must_append_controller
    - strncmp
    - strtok_r
    - strchr
    linkageType: ''
    returnType: char
    signature: char **cgv1_get_proc_mountinfo_controllers(char **klist, char **nlist,
      char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:787,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:792,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:793,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:796,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:797,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - cgline
    - c
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 803
    functionName: cgv1_controller_in_clist
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - memcpy
    - strtok_r
    - strchr
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: bool cgv1_controller_in_clist(char *cgline, char *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:815,1
    - Dst: cgv1_controller_in_clist
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:820,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:821,1
    - Dst: copy_to_eol
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:826,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:829,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - basecginfo
    - controller
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 836
    functionName: cgv1_get_current_cgroup
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_controller_in_clist
    - copy_to_eol
    - strchr
    linkageType: ''
    returnType: char
    signature: char *cgv1_get_current_cgroup(char *basecginfo, char *controller)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:849,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:849,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - cg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 859
    functionName: cg_systemd_prune_init_scope
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    linkageType: ''
    returnType: void
    signature: void cg_systemd_prune_init_scope(char *cg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc::must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:872,1
    - Dst: append_null_to_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - clist
    - mountpoint
    - base_cgroup
    - init_cgroup
    argTypes:
    - char**
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 884
    functionName: cgv1_add_controller
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - must_realloc::must_realloc
    - append_null_to_list
    linkageType: ''
    returnType: void
    signature: void cgv1_add_controller(char **clist, char *mountpoint, char *base_cgroup,
      char *init_cgroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: must_realloc::must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:899,1
    - Dst: append_null_to_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - clist
    - mountpoint
    - base_cgroup
    - init_cgroup
    - systemd_user_slice
    argTypes:
    - char**
    - char*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 911
    functionName: cgv2_add_controller
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - must_realloc::must_realloc
    - append_null_to_list
    linkageType: ''
    returnType: void
    signature: void cgv2_add_controller(char **clist, char *mountpoint, char *base_cgroup,
      char *init_cgroup, bool systemd_user_slice)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:926,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:927,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:927,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:929,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:944,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:945,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:946,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:954,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:963,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 34
    argCount: 2
    argNames:
    - in
    - uid
    argTypes:
    - char*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 965
    functionName: cg_systemd_under_user_slice_1
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strncmp
    - free
    - strlen
    - must_copy_string
    - sscanf
    linkageType: ''
    returnType: bool
    signature: bool cg_systemd_under_user_slice_1(const char *in, uid_t uid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:977,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:978,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:982,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:985,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:992,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:992,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - base_cgroup
    - init_cgroup
    - uid
    argTypes:
    - char*
    - char*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 993
    functionName: cg_systemd_under_user_slice_2
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strlen
    - snprintf
    - strncmp
    linkageType: ''
    returnType: bool
    signature: "bool cg_systemd_under_user_slice_2(const char *base_cgroup,\n\t\t\t\t\t
      \ const char *init_cgroup, uid_t uid)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1016,1
    - Dst: cg_systemd_under_user_slice_1
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1019,1
    - Dst: cg_systemd_under_user_slice_2
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1023,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1026,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1026,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1029,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1045,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1046,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1046,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1047,1
    - Dst: sscanf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1055,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1065,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 42
    argCount: 4
    argNames:
    - base_cgroup
    - init_cgroup
    - in
    - uid
    argTypes:
    - char*
    - char*
    - char*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1006
    functionDepth: 2
    functionLinenumber: 1006
    functionLinenumberEnd: 1067
    functionName: cg_systemd_created_user_slice
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strncmp
    - free
    - strlen
    - must_copy_string
    - sscanf
    - cg_systemd_under_user_slice_2
    - cg_systemd_under_user_slice_1
    linkageType: ''
    returnType: bool
    signature: "bool cg_systemd_created_user_slice(const char *base_cgroup,\n\t\t\t\t\t
      \ const char *init_cgroup,\n\t\t\t\t\t  const char *in, uid_t uid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1079,1
    - Dst: chown
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1084,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1085,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1086,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1087,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - mountpoint
    - base_cgroup
    - uid
    - gid
    - systemd_user_slice
    argTypes:
    - char*
    - char*
    - uid_t
    - gid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1070
    functionDepth: 2
    functionLinenumber: 1070
    functionLinenumberEnd: 1091
    functionName: cg_systemd_chown_existing_cgroup
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - must_make_path
    - free
    - strerror
    - pam_cgfs_debug
    - mysyslog
    - chown
    linkageType: ''
    returnType: bool
    signature: "bool cg_systemd_chown_existing_cgroup(const char *mountpoint,\n\t\t\t\t\t
      \    const char *base_cgroup, uid_t uid,\n\t\t\t\t\t     gid_t gid, bool systemd_user_slice)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: read_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1103,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1107,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1109,1
    - Dst: cgv1_get_controllers
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1113,1
    - Dst: getline
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1115,1
    - Dst: is_lxcfs
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1119,1
    - Dst: is_cgv1
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1119,1
    - Dst: cgv1_get_proc_mountinfo_controllers
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1122,1
    - Dst: cgv1_controller_list_is_dup
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1126,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1127,1
    - Dst: get_mountpoint
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1131,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1133,1
    - Dst: cgv1_get_current_cgroup
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1137,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1139,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1140,1
    - Dst: trim
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1144,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1145,1
    - Dst: cgv1_add_controller
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1148,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1151,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1152,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1153,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1154,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1155,1
    - Dst: read_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1158,1
    - Dst: cgv1_get_current_cgroup
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1170,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1172,1
    - Dst: cg_systemd_prune_init_scope
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1176,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1178,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1185,1
    - Dst: cg_systemd_created_user_slice
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1186,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1189,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1192,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - uid
    - gid
    argTypes:
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1195
    functionName: cgv1_init
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_add_controller
    - cgv1_get_current_cgroup
    - read_file
    - fopen
    - cgv1_get_controllers
    - free
    - free_string_list
    - cgv1_get_proc_mountinfo_controllers
    - cg_systemd_prune_init_scope
    - must_make_path
    - trim
    - cgv1_controller_list_is_dup
    - pam_cgfs_debug
    - is_lxcfs
    - cg_systemd_created_user_slice
    - get_mountpoint
    - fclose
    - is_cgv1
    - getline
    linkageType: ''
    returnType: bool
    signature: bool cgv1_init(uid_t uid, gid_t gid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_fs_type
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1202,1
    - Dst: has_fs_type
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1209
    functionName: cg_get_version_of_mntpt
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - has_fs_type
    linkageType: ''
    returnType: int
    signature: int cg_get_version_of_mntpt(const char *path)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cgv2_get_current_cgroup
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1223,1
    - Dst: getpid
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1223,1
    - Dst: cgv2_get_current_cgroup
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1230,1
    - Dst: cg_systemd_prune_init_scope
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1238,1
    - Dst: cg_get_version_of_mntpt
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1245,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1249,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1253,1
    - Dst: cg_systemd_created_user_slice
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1254,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1256,1
    - Dst: cgv2_add_controller
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1258,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1264,1
    - Dst: getline
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1269,1
    - Dst: is_cgv2
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1273,1
    - Dst: get_mountpoint
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1276,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1280,1
    - Dst: cg_systemd_created_user_slice
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1281,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1283,1
    - Dst: cgv2_add_controller
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1285,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1295,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1301,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1302,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1305,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1306,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - uid
    - gid
    argTypes:
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1214
    functionDepth: 3
    functionLinenumber: 1214
    functionLinenumberEnd: 1310
    functionName: cgv2_init
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - getpid
    - cgv2_add_controller
    - cgv2_get_current_cgroup
    - get_mountpoint
    - fclose
    - is_cgv2
    - free
    - cg_systemd_prune_init_scope
    - pam_cgfs_debug
    - must_copy_string
    - cg_get_version_of_mntpt
    - getline
    - cg_systemd_created_user_slice
    - must_make_path
    - fopen
    linkageType: ''
    returnType: bool
    signature: bool cgv2_init(uid_t uid, gid_t gid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_init
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1321,1
    - Dst: cgv2_init
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1324,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1329,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1332,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1335,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - uid
    - gid
    argTypes:
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1319
    functionDepth: 5
    functionLinenumber: 1319
    functionLinenumberEnd: 1345
    functionName: cg_init
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv2_init
    - pam_cgfs_debug
    - mysyslog
    - cgv1_init
    linkageType: ''
    returnType: bool
    signature: bool cg_init(uid_t uid, gid_t gid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1372,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1377,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1378,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1379,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1386,1
    - Dst: write_int
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1387,1
    - Dst: getpid
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1387,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1389,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1393,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 1
    argNames:
    - cgroup
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1348
    functionDepth: 2
    functionLinenumber: 1348
    functionLinenumberEnd: 1402
    functionName: cgv1_enter
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - getpid
    - free
    - write_int
    - file_exists
    - pam_cgfs_debug
    - must_make_path
    linkageType: ''
    returnType: bool
    signature: bool cgv1_enter(const char *cgroup)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1422,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1423,1
    - Dst: write_int
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1425,1
    - Dst: getpid
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1425,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1427,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1428,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - cgroup
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1435
    functionName: cgv2_enter
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - getpid
    - free
    - write_int
    - pam_cgfs_debug
    - must_make_path
    linkageType: ''
    returnType: bool
    signature: bool cgv2_enter(const char *cgroup)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_enter
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1440,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1441,1
    - Dst: cgv2_enter
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1445,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cgroup
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1451
    functionName: cg_enter
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_enter
    - cgv2_enter
    - mysyslog
    linkageType: ''
    returnType: bool
    signature: bool cg_enter(const char *cgroup)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_handle_root_cpuset_hierarchy
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1464,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1465,1
    - Dst: cgv1_enter
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1467,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1454
    functionDepth: 3
    functionLinenumber: 1454
    functionLinenumberEnd: 1469
    functionName: cgv1_escape
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_enter
    - cgv1_handle_root_cpuset_hierarchy
    - mysyslog
    linkageType: ''
    returnType: void
    signature: void cgv1_escape(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cgv2_enter
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1474,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1472
    functionDepth: 3
    functionLinenumber: 1472
    functionLinenumberEnd: 1476
    functionName: cgv2_escape
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv2_enter
    - mysyslog
    linkageType: ''
    returnType: void
    signature: void cgv2_escape(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_escape
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1481,1
    - Dst: cgv2_escape
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1479
    functionDepth: 4
    functionLinenumber: 1479
    functionLinenumberEnd: 1483
    functionName: cg_escape
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv2_escape
    - cgv1_escape
    linkageType: ''
    returnType: void
    signature: void cg_escape(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1494,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1498,1
    - Dst: getpwnam_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1502,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1505,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1508,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - user
    - uid
    - gid
    argTypes:
    - char*
    - uid_t*
    - gid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1517
    functionName: get_uid_gid
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - sysconf
    - getpwnam_r
    - mysyslog
    - malloc
    linkageType: ''
    returnType: bool
    signature: bool get_uid_gid(const char *user, uid_t *uid, gid_t *gid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - path
    - uid
    - gid
    argTypes:
    - char*
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1531
    functionName: cg_belongs_to_uid_gid
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - stat
    linkageType: ''
    returnType: bool
    signature: bool cg_belongs_to_uid_gid(const char *path, uid_t uid, gid_t gid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1545,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1546,1
    - Dst: strtok_r
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1550,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1552,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1555,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1557,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1560,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1565,1
    - Dst: set_bit
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - nbits
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1574
    functionName: cg_cpumask
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - strtok_r
    - set_bit
    - strchr
    - calloc
    - strtoul
    - BITS_TO_LONGS
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t *cg_cpumask(char *buf, size_t nbits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1580,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1589,1
    - Dst: calloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1592,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1597,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1601,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - sep
    - parts
    - use_as_prefix
    argTypes:
    - char*
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1576
    functionDepth: 1
    functionLinenumber: 1576
    functionLinenumberEnd: 1607
    functionName: string_join
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 6
    functionsReached:
    - strlcat
    - calloc
    - strlen
    - strlcpy
    linkageType: ''
    returnType: char
    signature: char *string_join(const char *sep, const char **parts, bool use_as_prefix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_set
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1622,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1623,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1625,1
    - Dst: must_append_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1629,1
    - Dst: string_join
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bitarr
    - nbits
    argTypes:
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1614
    functionDepth: 3
    functionLinenumber: 1614
    functionLinenumberEnd: 1634
    functionName: cg_cpumask_to_cpulist
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - string_join
    - free_string_list
    - snprintf
    - is_set
    - must_append_string
    linkageType: ''
    returnType: char
    signature: char *cg_cpumask_to_cpulist(uint32_t *bitarr, size_t nbits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1642,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1646,1
    - Dst: strtoul
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1662,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - cpulist
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1636
    functionDepth: 0
    functionLinenumber: 1636
    functionLinenumberEnd: 1667
    functionName: cg_get_max_cpus
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strtoul
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t cg_get_max_cpus(char *cpulist)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1681,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1683,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1690,1
    - Dst: read_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1691,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1693,1
    - Dst: cg_get_max_cpus
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1698,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1702,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1704,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1712,1
    - Dst: read_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1722,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1724,1
    - Dst: isdigit
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1728,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1729,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1737,1
    - Dst: cg_get_max_cpus
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1748,1
    - Dst: cg_cpumask
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1756,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1758,1
    - Dst: cg_cpumask
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1762,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1764,1
    - Dst: is_set
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1769,1
    - Dst: is_set
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1769,1
    - Dst: clear_bit
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1771,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1776,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1779,1
    - Dst: cg_cpumask_to_cpulist
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1781,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1783,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1790,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1792,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1793,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1793,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1795,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1805,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1806,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1807,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1810,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1811,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1813,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 109
    argCount: 2
    argNames:
    - path
    - am_initialized
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1670
    functionDepth: 4
    functionLinenumber: 1670
    functionLinenumberEnd: 1815
    functionName: cg_filter_and_set_cpus
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - read_file
    - cg_get_max_cpus
    - clear_bit
    - strrchr
    - cg_cpumask_to_cpulist
    - file_exists
    - pam_cgfs_debug
    - isdigit
    - cg_cpumask
    - free
    - strlen
    - must_make_path
    - is_set
    - lxc_write_to_file
    linkageType: ''
    returnType: bool
    signature: bool cg_filter_and_set_cpus(char *path, bool am_initialized)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1824,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1826,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1833,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1834,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1836,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1836,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1840,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1841,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1842,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1842,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1845,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1849,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1850,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1852,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1854,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1855,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1859,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1860,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - path
    - file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1818
    functionDepth: 2
    functionLinenumber: 1818
    functionLinenumberEnd: 1863
    functionName: cg_copy_parent_file
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - lxc_read_from_file
    - strrchr
    - strerror
    - pam_cgfs_debug
    - must_make_path
    - lxc_write_to_file
    - must_realloc
    linkageType: ''
    returnType: bool
    signature: bool cg_copy_parent_file(char *path, char *file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1874,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1877,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1879,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1880,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1880,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1881,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1886,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1890,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1892,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1893,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct cgv1_hierarchy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1870
    functionDepth: 2
    functionLinenumber: 1870
    functionLinenumberEnd: 1899
    functionName: cgv1_handle_root_cpuset_hierarchy
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 1
    functionsReached:
    - free
    - lxc_read_from_file
    - strerror
    - pam_cgfs_debug
    - must_make_path
    - string_in_list
    - lxc_write_to_file
    linkageType: ''
    returnType: bool
    signature: bool cgv1_handle_root_cpuset_hierarchy(struct cgv1_hierarchy *h)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1912,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1917,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1921,1
    - Dst: do_mkdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1925,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1926,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1927,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1931,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1932,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1933,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1934,1
    - Dst: lxc_read_from_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1938,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1939,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1939,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1940,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1941,1
    - Dst: cg_filter_and_set_cpus
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1946,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1947,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1948,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1949,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1954,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1955,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1956,1
    - Dst: cg_copy_parent_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1961,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1962,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1963,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1964,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1967,1
    - Dst: lxc_write_to_file
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1969,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1971,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1972,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1975,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 2
    argNames:
    - h
    - cgroup
    argTypes:
    - struct cgv1_hierarchy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1907
    functionDepth: 5
    functionLinenumber: 1907
    functionLinenumberEnd: 1977
    functionName: cgv1_handle_cpuset_hierarchy
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - do_mkdir
    - cg_filter_and_set_cpus
    - free
    - lxc_read_from_file
    - strerror
    - file_exists
    - pam_cgfs_debug
    - strchr
    - cg_copy_parent_file
    - must_make_path
    - string_in_list
    - lxc_write_to_file
    linkageType: ''
    returnType: bool
    signature: "bool cgv1_handle_cpuset_hierarchy(struct cgv1_hierarchy *h,\n\t\t\t\t\t
      const char *cgroup)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_handle_cpuset_hierarchy
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:1998,1
    - Dst: cg_systemd_chown_existing_cgroup
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2004,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2018,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2019,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2020,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2023,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2028,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2029,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2031,1
    - Dst: cg_belongs_to_uid_gid
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2032,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2038,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2040,1
    - Dst: lxc_mkdir_parent
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2045,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2047,1
    - Dst: chown
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2051,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2052,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2054,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2056,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2057,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - h
    - cgroup
    - uid
    - gid
    - existed
    argTypes:
    - struct cgv1_hierarchy*
    - char*
    - uid_t
    - gid_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 1986
    functionDepth: 6
    functionLinenumber: 1986
    functionLinenumberEnd: 2062
    functionName: cgv1_create_one
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strncmp
    - cg_systemd_chown_existing_cgroup
    - free
    - strerror
    - file_exists
    - strstr
    - pam_cgfs_debug
    - must_copy_string
    - lxc_mkdir_parent
    - cgv1_handle_cpuset_hierarchy
    - mysyslog
    - cg_belongs_to_uid_gid
    - must_make_path
    - chown
    linkageType: ''
    returnType: bool
    signature: bool cgv1_create_one(struct cgv1_hierarchy *h, const char *cgroup,
      uid_t uid, gid_t gid, bool *existed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2081,1
    - Dst: recursive_rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2082,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - h
    - cgroup
    argTypes:
    - struct cgv1_hierarchy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2068
    functionDepth: 3
    functionLinenumber: 2068
    functionLinenumberEnd: 2086
    functionName: cgv1_remove_one
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - recursive_rmdir
    - must_make_path
    linkageType: ''
    returnType: bool
    signature: bool cgv1_remove_one(struct cgv1_hierarchy *h, const char *cgroup)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2107,1
    - Dst: recursive_rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2108,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cgroup
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2089
    functionDepth: 3
    functionLinenumber: 2089
    functionLinenumberEnd: 2112
    functionName: cgv2_remove
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - recursive_rmdir
    - must_make_path
    linkageType: ''
    returnType: bool
    signature: bool cgv2_remove(const char *cgroup)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_create_one
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2129,1
    - Dst: cgv1_remove_one
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2140,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 4
    argNames:
    - cgroup
    - uid
    - gid
    - existed
    argTypes:
    - char*
    - uid_t
    - gid_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2119
    functionDepth: 7
    functionLinenumber: 2119
    functionLinenumberEnd: 2143
    functionName: cgv1_create
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_remove_one
    - cgv1_create_one
    linkageType: ''
    returnType: bool
    signature: bool cgv1_create(const char *cgroup, uid_t uid, gid_t gid, bool *existed)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cg_systemd_chown_existing_cgroup
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2166,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2175,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2176,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2177,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2179,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2184,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2185,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2187,1
    - Dst: cg_belongs_to_uid_gid
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2188,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2189,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2191,1
    - Dst: lxc_mkdir_parent
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2201,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2203,1
    - Dst: chown
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2208,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2209,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2210,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2212,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2213,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2218,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2221,1
    - Dst: chown
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2224,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2226,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2227,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2229,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2230,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2234,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2237,1
    - Dst: chown
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2240,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2242,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2243,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2244,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2248,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2251,1
    - Dst: chown
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2253,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2255,1
    - Dst: strerror
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2256,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2257,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 4
    argNames:
    - cgroup
    - uid
    - gid
    - existed
    argTypes:
    - char*
    - uid_t
    - gid_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2148
    functionDepth: 3
    functionLinenumber: 2148
    functionLinenumberEnd: 2260
    functionName: cgv2_create
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strncmp
    - cg_systemd_chown_existing_cgroup
    - free
    - strerror
    - file_exists
    - strstr
    - pam_cgfs_debug
    - must_copy_string
    - lxc_mkdir_parent
    - mysyslog
    - cg_belongs_to_uid_gid
    - must_make_path
    - chown
    linkageType: ''
    returnType: bool
    signature: bool cgv2_create(const char *cgroup, uid_t uid, gid_t gid, bool *existed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cg_escape
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2271,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2274,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2276,1
    - Dst: cgv2_create
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2281,1
    - Dst: cgv2_remove
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2283,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2288,1
    - Dst: cgv1_create
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2293,1
    - Dst: cgv2_remove
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2295,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2300,1
    - Dst: cg_enter
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2304,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2305,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - user
    - uid
    - gid
    argTypes:
    - char*
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2265
    functionDepth: 8
    functionLinenumber: 2265
    functionLinenumberEnd: 2313
    functionName: handle_login
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv1_create
    - cg_escape
    - cg_enter
    - snprintf
    - mysyslog
    - cgv2_create
    - cgv2_remove
    linkageType: ''
    returnType: int
    signature: int handle_login(const char *user, uid_t uid, gid_t gid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2337,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2338,1
    - Dst: recursive_rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2340,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2345,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2347,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2348,1
    - Dst: recursive_rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2350,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2355,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 1
    argNames:
    - user
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2318
    functionDepth: 3
    functionLinenumber: 2318
    functionLinenumberEnd: 2371
    functionName: cgv1_prune_empty_cgroups
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - pam_cgfs_debug
    - recursive_rmdir
    - must_make_path
    linkageType: ''
    returnType: bool
    signature: bool cgv1_prune_empty_cgroups(const char *user)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2388,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2389,1
    - Dst: recursive_rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2391,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2396,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2398,1
    - Dst: pam_cgfs_debug
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2399,1
    - Dst: recursive_rmdir
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2401,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - user
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2376
    functionDepth: 3
    functionLinenumber: 2376
    functionLinenumberEnd: 2412
    functionName: cgv2_prune_empty_cgroups
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    - pam_cgfs_debug
    - recursive_rmdir
    - must_make_path
    linkageType: ''
    returnType: bool
    signature: bool cgv2_prune_empty_cgroups(const char *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_prune_empty_cgroups
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2417,1
    - Dst: cgv2_prune_empty_cgroups
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - user
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2415
    functionDepth: 4
    functionLinenumber: 2415
    functionLinenumberEnd: 2419
    functionName: cg_prune_empty_cgroups
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv2_prune_empty_cgroups
    - cgv1_prune_empty_cgroups
    linkageType: ''
    returnType: void
    signature: void cg_prune_empty_cgroups(const char *user)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2433,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2435,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2438,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2439,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2440,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2441,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2422
    functionDepth: 0
    functionLinenumber: 2422
    functionLinenumberEnd: 2445
    functionName: cgv1_free_hierarchies
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cgv1_free_hierarchies(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2460,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2462,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2465,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2466,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2467,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2468,1
    - Dst: free
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2448
    functionDepth: 0
    functionLinenumber: 2448
    functionLinenumberEnd: 2472
    functionName: cgv2_free_hierarchies
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cgv2_free_hierarchies(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cgv1_free_hierarchies
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2477,1
    - Dst: cgv2_free_hierarchies
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2479
    functionName: cg_exit
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - cgv2_free_hierarchies
    - cgv1_free_hierarchies
    linkageType: ''
    returnType: void
    signature: void cg_exit(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pam_get_user
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2489,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2491,1
    - Dst: get_uid_gid
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2495,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2496,1
    - Dst: cg_init
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2500,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2501,1
    - Dst: cg_prune_empty_cgroups
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2508,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2513,1
    - Dst: make_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2514,1
    - Dst: string_list_length
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2520,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2520,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2521,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2522,1
    - Dst: cg_mark_to_make_rw
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2526,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2527,1
    - Dst: handle_login
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2530,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - pamh
    - flags
    - argc
    - argv
    argTypes:
    - pam_handle_t*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2481
    functionDepth: 9
    functionLinenumber: 2481
    functionLinenumberEnd: 2531
    functionName: pam_sm_open_session
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - make_string_list
    - string_list_length
    - handle_login
    - pam_get_user
    - free_string_list
    - cg_init
    - get_uid_gid
    - cg_mark_to_make_rw
    - mysyslog
    - string_in_list
    - cg_prune_empty_cgroups
    linkageType: ''
    returnType: int
    signature: "int pam_sm_open_session(pam_handle_t *pamh, int flags, int argc,\n\t\tconst
      char **argv)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pam_get_user
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2541,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2543,1
    - Dst: get_uid_gid
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2547,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2548,1
    - Dst: cg_init
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2553,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2554,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2556,1
    - Dst: make_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2557,1
    - Dst: string_list_length
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2563,1
    - Dst: string_in_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2563,1
    - Dst: mysyslog
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2564,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2565,1
    - Dst: cg_mark_to_make_rw
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2569,1
    - Dst: free_string_list
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2570,1
    - Dst: cg_prune_empty_cgroups
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2574,1
    - Dst: cg_exit
      Src: /src/lxc/src/lxc/pam/pam_cgfs.c:2575,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - pamh
    - flags
    - argc
    - argv
    argTypes:
    - pam_handle_t*
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2533
    functionDepth: 6
    functionLinenumber: 2533
    functionLinenumberEnd: 2578
    functionName: pam_sm_close_session
    functionSourceFile: /src/lxc/src/lxc/pam/pam_cgfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - make_string_list
    - string_list_length
    - pam_get_user
    - free_string_list
    - cg_init
    - cg_exit
    - get_uid_gid
    - cg_mark_to_make_rw
    - mysyslog
    - string_in_list
    - cg_prune_empty_cgroups
    linkageType: ''
    returnType: int
    signature: "int pam_sm_close_session(pam_handle_t *pamh, int flags, int argc,\n\t\tconst
      char **argv)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/dir.c:33,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:36,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/dir.c:38,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/dir.c:38,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/dir.c:38,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/dir.c:39,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/dir.c:39,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/dir.c:40,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/dir.c:41,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:42,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/dir.c:44,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/dir.c:44,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:46,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/dir.c:48,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/dir.c:48,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/dir.c:48,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/dir.c:49,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/dir.c:50,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/dir.c:51,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/dir.c:51,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/dir.c:53,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/dir.c:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: dir_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/dir.c
    functionUses: 0
    functionsReached:
    - type::type
    - ret_errno
    - STRLITERALLEN
    - strlen
    - snprintf
    - lxc_storage_get_path
    - TRACE
    - src::src
    - dest::dest
    - strdup
    - log_error_errno
    - malloc
    linkageType: ''
    returnType: int
    signature: "int dir_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,\n\t\t
      \  const char *oldname, const char *cname, const char *oldpath,\n\t\t   const
      char *lxcpath, int snap, uint64_t newsize,\n\t\t   struct lxc_conf *conf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/dir.c:65,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/dir.c:71,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/dir.c:72,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:74,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/dir.c:76,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:78,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/dir.c:80,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:82,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/dir.c:84,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/dir.c:86,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/dir.c:88,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/storage/dir.c:89,1
    - Dst: move_ptr
      Src: /src/lxc/src/lxc/storage/dir.c:90,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 93
    functionName: dir_create
    functionSourceFile: /src/lxc/src/lxc/storage/dir.c
    functionUses: 0
    functionsReached:
    - ret_errno
    - STRLITERALLEN
    - move_ptr
    - strlen
    - lxc_mkdir_p
    - snprintf
    - TRACE
    - strdup
    - log_error_errno
    - malloc
    linkageType: ''
    returnType: int
    signature: "int dir_create(struct lxc_storage *bdev, const char *dest, const char
      *n,\n\t       struct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/dir.c:100,1
    - Dst: lxc_rmdir_onedev
      Src: /src/lxc/src/lxc/storage/dir.c:102,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/dir.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: dir_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/dir.c
    functionUses: 0
    functionsReached:
    - lxc_storage_get_path
    - lxc_rmdir_onedev
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int dir_destroy(struct lxc_storage *orig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/dir.c:114,1
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/dir.c:117,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/dir.c:119,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/storage/dir.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: dir_detect
    functionSourceFile: /src/lxc/src/lxc/storage/dir.c
    functionUses: 0
    functionsReached:
    - stat
    - log_error_errno
    - S_ISDIR
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool dir_detect(const char *path)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strequal
      Src: /src/lxc/src/lxc/storage/dir.c:134,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/storage/dir.c:135,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/storage/dir.c:137,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/storage/dir.c:138,1
    - Dst: is_empty_string
      Src: /src/lxc/src/lxc/storage/dir.c:140,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/storage/dir.c:141,1
    - Dst: can_use_bind_mounts
      Src: /src/lxc/src/lxc/storage/dir.c:143,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/storage/dir.c:144,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/dir.c:146,1
    - Dst: can_use_bind_mounts
      Src: /src/lxc/src/lxc/storage/dir.c:149,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/storage/dir.c:152,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/storage/dir.c:154,1
    - Dst: move_detached_mount
      Src: /src/lxc/src/lxc/storage/dir.c:157,1
    - Dst: open_at
      Src: /src/lxc/src/lxc/storage/dir.c:161,1
    - Dst: syserror
      Src: /src/lxc/src/lxc/storage/dir.c:163,1
    - Dst: fd_bind_mount
      Src: /src/lxc/src/lxc/storage/dir.c:165,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/dir.c:177,1
    - Dst: add_required_remount_flags
      Src: /src/lxc/src/lxc/storage/dir.c:181,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/dir.c:187,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/dir.c:189,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/dir.c:191,1
    - Dst: syserror_set
      Src: /src/lxc/src/lxc/storage/dir.c:195,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/dir.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 199
    functionName: dir_mount
    functionSourceFile: /src/lxc/src/lxc/storage/dir.c
    functionUses: 0
    functionsReached:
    - syserror
    - syserror_set
    - strequal
    - move_detached_mount
    - add_required_remount_flags
    - SYSERROR
    - is_empty_string
    - lxc_storage_get_path
    - open_at
    - fd_bind_mount
    - TRACE
    - can_use_bind_mounts
    - mount
    linkageType: ''
    returnType: int
    signature: int dir_mount(struct lxc_storage *bdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/dir.c:203,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:204,1
    - Dst: ret_errno
      Src: /src/lxc/src/lxc/storage/dir.c:207,1
    - Dst: umount2
      Src: /src/lxc/src/lxc/storage/dir.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: dir_umount
    functionSourceFile: /src/lxc/src/lxc/storage/dir.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount2
    - ret_errno
    linkageType: ''
    returnType: int
    signature: int dir_umount(struct lxc_storage *bdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/storage/nbd.c:46,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/nbd.c:48,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/storage/nbd.c:53,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/storage/nbd.c:55,1
    - Dst: nbd_busy
      Src: /src/lxc/src/lxc/storage/nbd.c:58,1
    - Dst: clone_attach_nbd
      Src: /src/lxc/src/lxc/storage/nbd.c:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - src
    - conf
    argTypes:
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 69
    functionName: attach_nbd
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 1
    functionsReached:
    - file_exists
    - clone_attach_nbd
    - strchr
    - must_copy_string
    - sprintf
    - nbd_busy
    linkageType: ''
    returnType: bool
    signature: bool attach_nbd(char *src, struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/nbd.c:76,1
    - Dst: nbd_detach
      Src: /src/lxc/src/lxc/storage/nbd.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: detach_nbd_idx
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached:
    - nbd_detach
    - snprintf
    linkageType: ''
    returnType: void
    signature: void detach_nbd_idx(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: nbd_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int nbd_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,\n\t\t
      \  const char *oldname, const char *cname, const char *oldpath,\n\t\t   const
      char *lxcpath, int snap, uint64_t newsize,\n\t\t   struct lxc_conf *conf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: nbd_create
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int nbd_create(struct lxc_storage *bdev, const char *dest, const char
      *n,\n\t       struct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: nbd_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nbd_destroy(struct lxc_storage *orig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/nbd.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: nbd_detect
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool nbd_detect(const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/nbd.c:116,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/nbd.c:126,1
    - Dst: nbd_get_partition
      Src: /src/lxc/src/lxc/storage/nbd.c:127,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/nbd.c:129,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/nbd.c:132,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:134,1
    - Dst: wait_for_partition
      Src: /src/lxc/src/lxc/storage/nbd.c:140,1
    - Dst: mount_unknown_fs
      Src: /src/lxc/src/lxc/storage/nbd.c:143,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 148
    functionName: nbd_mount
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached:
    - strcmp
    - wait_for_partition
    - snprintf
    - nbd_get_partition
    - lxc_storage_get_path
    - mount_unknown_fs
    - ERROR
    linkageType: ''
    returnType: int
    signature: int nbd_mount(struct lxc_storage *bdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/nbd.c:152,1
    - Dst: umount
      Src: /src/lxc/src/lxc/storage/nbd.c:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: nbd_umount
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount
    linkageType: ''
    returnType: int
    signature: int nbd_umount(struct lxc_storage *bdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/nbd.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: requires_nbd
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool requires_nbd(const char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/lxc/src/lxc/storage/nbd.c:179,1
    - Dst: sigaddset
      Src: /src/lxc/src/lxc/storage/nbd.c:180,1
    - Dst: sigaddset
      Src: /src/lxc/src/lxc/storage/nbd.c:181,1
    - Dst: sigprocmask
      Src: /src/lxc/src/lxc/storage/nbd.c:186,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:187,1
    - Dst: exit
      Src: /src/lxc/src/lxc/storage/nbd.c:188,1
    - Dst: signalfd
      Src: /src/lxc/src/lxc/storage/nbd.c:191,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:193,1
    - Dst: exit
      Src: /src/lxc/src/lxc/storage/nbd.c:194,1
    - Dst: prctl
      Src: /src/lxc/src/lxc/storage/nbd.c:197,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/storage/nbd.c:197,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/storage/nbd.c:197,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/storage/nbd.c:198,1
    - Dst: prctl_arg
      Src: /src/lxc/src/lxc/storage/nbd.c:198,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:199,1
    - Dst: fork
      Src: /src/lxc/src/lxc/storage/nbd.c:201,1
    - Dst: read
      Src: /src/lxc/src/lxc/storage/nbd.c:204,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:206,1
    - Dst: nbd_detach
      Src: /src/lxc/src/lxc/storage/nbd.c:210,1
    - Dst: exit
      Src: /src/lxc/src/lxc/storage/nbd.c:211,1
    - Dst: waitpid
      Src: /src/lxc/src/lxc/storage/nbd.c:217,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/storage/nbd.c:218,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/storage/nbd.c:218,1
    - Dst: WIFSIGNALED
      Src: /src/lxc/src/lxc/storage/nbd.c:219,1
    - Dst: nbd_detach
      Src: /src/lxc/src/lxc/storage/nbd.c:220,1
    - Dst: exit
      Src: /src/lxc/src/lxc/storage/nbd.c:221,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/nbd.c:228,1
    - Dst: sigprocmask
      Src: /src/lxc/src/lxc/storage/nbd.c:230,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/nbd.c:231,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/nbd.c:233,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:234,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/nbd.c:235,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - d
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 236
    functionName: do_attach_nbd
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - sigaddset
    - WIFSIGNALED
    - close
    - exit
    - nbd_detach
    - sigemptyset
    - waitpid
    - WARN
    - SYSERROR
    - sigprocmask
    - prctl
    - signalfd
    - WEXITSTATUS
    - execlp
    - read
    - prctl_arg
    - _exit
    - fork
    linkageType: ''
    returnType: int
    signature: int do_attach_nbd(void *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_clone
      Src: /src/lxc/src/lxc/storage/nbd.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - nbd
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: clone_attach_nbd
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 1
    functionsReached:
    - lxc_clone
    linkageType: ''
    returnType: bool
    signature: bool clone_attach_nbd(const char *nbd, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/nbd.c:258,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/storage/nbd.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: nbd_busy
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 1
    functionsReached:
    - file_exists
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool nbd_busy(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/lxc/src/lxc/storage/nbd.c:268,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:271,1
    - Dst: wait_for_pid
      Src: /src/lxc/src/lxc/storage/nbd.c:276,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:278,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/nbd.c:282,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:283,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/nbd.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 285
    functionName: nbd_detach
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 2
    functionsReached:
    - SYSERROR
    - _exit
    - wait_for_pid
    - execlp
    - ERROR
    - fork
    linkageType: ''
    returnType: void
    signature: void nbd_detach(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/nbd.c:294,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/nbd.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 308
    functionName: nbd_get_partition
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 1
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int nbd_get_partition(const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: file_exists
      Src: /src/lxc/src/lxc/storage/nbd.c:315,1
    - Dst: sleep
      Src: /src/lxc/src/lxc/storage/nbd.c:318,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/nbd.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 324
    functionName: wait_for_partition
    functionSourceFile: /src/lxc/src/lxc/storage/nbd.c
    functionUses: 1
    functionsReached:
    - ERROR
    - file_exists
    - sleep
    linkageType: ''
    returnType: bool
    signature: bool wait_for_partition(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: cpu_to_le64
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: le64_to_cpu
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: cpu_to_le32
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: le32_to_cpu
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: cpu_to_le16
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: le16_to_cpu
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: cpu_to_le64
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: le64_to_cpu
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: cpu_to_le32
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: le32_to_cpu
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: cpu_to_le16
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: le16_to_cpu
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - member
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 334
    functionName: BTRFS_SETGET_STACK_FUNCS
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BTRFS_SETGET_STACK_FUNCS(name, type, member, bits)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:43,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:51,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:53,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/overlay.c:53,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:55,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/overlay.c:55,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/overlay.c:59,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/storage/overlay.c:59,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:60,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/overlay.c:60,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:62,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/overlay.c:62,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:65,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:69,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:71,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:73,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:84,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:86,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:88,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/overlay.c:90,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/storage/overlay.c:90,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:94,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:95,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:97,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:99,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:100,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:102,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:104,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:106,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/overlay.c:109,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:110,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:110,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:111,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:111,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:111,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/overlay.c:113,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/overlay.c:114,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:115,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:117,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/overlay.c:117,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:119,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:120,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:121,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:127,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:129,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:132,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:132,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:133,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:134,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:134,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:135,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/overlay.c:137,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:139,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:143,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:145,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:147,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:152,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:153,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:155,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/overlay.c:157,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/storage/overlay.c:157,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:161,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:162,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:164,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:166,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:167,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:169,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:171,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:173,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:176,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:176,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:176,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:176,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:176,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/overlay.c:177,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/overlay.c:178,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:179,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:181,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/overlay.c:181,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:183,1
    - Dst: ovl_do_rsync
      Src: /src/lxc/src/lxc/storage/overlay.c:185,1
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/lxc/storage/overlay.c:194,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:196,1
    - Dst: lxc_path_simplify
      Src: /src/lxc/src/lxc/storage/overlay.c:198,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:200,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/overlay.c:202,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:204,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/overlay.c:206,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:208,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:210,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:210,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:214,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:214,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:222,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:223,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:230,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:231,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:243,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 133
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 247
    functionName: ovl_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 0
    functionsReached:
    - ovl_do_rsync
    - strchr
    - chown_mapped_root
    - ERROR
    - STRLITERALLEN
    - lxc_mkdir_p
    - strlen
    - snprintf
    - lxc_storage_get_path
    - src::src
    - must_make_path
    - lxc_path_simplify
    - WARN
    - strncmp
    - am_guest_unpriv
    - strrchr
    - SYSERROR
    - dest::dest
    - strcmp
    - list_empty
    - strdup
    - log_error_errno
    - malloc
    linkageType: ''
    returnType: int
    signature: "int ovl_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,
      const char *oldname,\n\t\t   const char *cname, const char *oldpath, const char
      *lxcpath,\n\t\t   int snap, uint64_t newsize, struct lxc_conf *conf)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:260,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:261,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:261,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:262,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:264,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:266,1
    - Dst: strndup
      Src: /src/lxc/src/lxc/storage/overlay.c:268,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:268,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:270,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:272,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:274,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:276,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/overlay.c:278,1
    - Dst: list_empty
      Src: /src/lxc/src/lxc/storage/overlay.c:278,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:281,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:282,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:284,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/overlay.c:286,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/overlay.c:288,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:292,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:292,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:292,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:292,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/overlay.c:293,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:295,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:297,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:299,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:301,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:303,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 306
    functionName: ovl_create
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 0
    functionsReached:
    - strcmp
    - WARN
    - STRLITERALLEN
    - am_guest_unpriv
    - strndup
    - strlen
    - lxc_mkdir_p
    - snprintf
    - chown_mapped_root
    - must_make_path
    - list_empty
    - strdup
    - log_error_errno
    - malloc
    linkageType: ''
    returnType: int
    signature: "int ovl_create(struct lxc_storage *bdev, const char *dest, const char
      *n,\n\t       struct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:318,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:320,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/overlay.c:323,1
    - Dst: lxc_rmdir_onedev
      Src: /src/lxc/src/lxc/storage/overlay.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 329
    functionName: ovl_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 0
    functionsReached:
    - lxc_rmdir_onedev
    - strchr
    - strncmp
    linkageType: ''
    returnType: int
    signature: int ovl_destroy(struct lxc_storage *orig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:333,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: ovl_detect
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool ovl_detect(const char *path)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:352,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:352,1
    - Dst: ovl_detect_name
      Src: /src/lxc/src/lxc/storage/overlay.c:359,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:364,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/overlay.c:366,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:370,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:370,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:371,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:372,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:372,1
    - Dst: STRLITERALLEN
      Src: /src/lxc/src/lxc/storage/overlay.c:373,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:378,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:385,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:392,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:394,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:395,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/overlay.c:405,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:407,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:408,1
    - Dst: must_make_path
      Src: /src/lxc/src/lxc/storage/overlay.c:413,1
    - Dst: parse_mntopts_legacy
      Src: /src/lxc/src/lxc/storage/overlay.c:416,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:418,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:419,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:420,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:421,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:425,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:427,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:428,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:429,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:430,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:441,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:441,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:442,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:442,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/overlay.c:443,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:444,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:447,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:447,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:447,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:448,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:449,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/overlay.c:450,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:451,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:455,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:455,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:456,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/overlay.c:457,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:458,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:461,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:461,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:461,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:462,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/overlay.c:463,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:464,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:470,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:471,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:472,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:473,1
    - Dst: ovl_remount_on_enodev
      Src: /src/lxc/src/lxc/storage/overlay.c:478,1
    - Dst: SYSINFO
      Src: /src/lxc/src/lxc/storage/overlay.c:481,1
    - Dst: ovl_remount_on_enodev
      Src: /src/lxc/src/lxc/storage/overlay.c:487,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:490,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/overlay.c:493,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/overlay.c:496,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:500,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:501,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 503
    functionName: ovl_mount
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 0
    functionsReached:
    - strdup
    - must_realloc
    - ovl_detect_name
    - STRLITERALLEN
    - free
    - lxc_mkdir_p
    - strstr
    - strlen
    - snprintf
    - must_make_path
    - strncmp
    - strrchr
    - SYSERROR
    - parse_mntopts_legacy
    - strcmp
    - SYSINFO
    - INFO
    - ovl_remount_on_enodev
    - ERROR
    - log_error_errno
    linkageType: ''
    returnType: int
    signature: int ovl_mount(struct lxc_storage *bdev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:509,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:509,1
    - Dst: umount
      Src: /src/lxc/src/lxc/storage/overlay.c:515,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:517,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/overlay.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 522
    functionName: ovl_umount
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount
    - SYSERROR
    - TRACE
    linkageType: ''
    returnType: int
    signature: int ovl_umount(struct lxc_storage *bdev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:528,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:530,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - rootfs_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 539
    functionName: ovl_get_lower
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 0
    functionsReached:
    - strstr
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *ovl_get_lower(const char *rootfs_path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:551,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:556,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:558,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:561,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:565,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:566,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - rootfs_path
    - rootfslen
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 573
    functionName: ovl_get_rootfs
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 1
    functionsReached:
    - strncmp
    - free
    - strlen
    - strstr
    - strdup
    linkageType: ''
    returnType: char
    signature: char *ovl_get_rootfs(const char *rootfs_path, size_t *rootfslen)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lxc_string_split
      Src: /src/lxc/src/lxc/storage/overlay.c:591,1
    - Dst: lxc_array_len
      Src: /src/lxc/src/lxc/storage/overlay.c:593,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:598,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:599,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:599,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:601,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:602,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:602,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:607,1
    - Dst: ovl_get_rootfs
      Src: /src/lxc/src/lxc/storage/overlay.c:611,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/overlay.c:615,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:626,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:627,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:628,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:629,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/storage/overlay.c:632,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:638,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:639,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/overlay.c:640,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/overlay.c:641,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/storage/overlay.c:644,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:650,1
    - Dst: lxc_free_array
      Src: /src/lxc/src/lxc/storage/overlay.c:651,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 49
    argCount: 4
    argNames:
    - mntent
    - rootfs
    - lxc_name
    - lxc_path
    argTypes:
    - struct mntent*
    - struct lxc_rootfs*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 653
    functionName: ovl_mkdir
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 1
    functionsReached:
    - ovl_get_rootfs
    - strncmp
    - free
    - lxc_array_len
    - strstr
    - snprintf
    - strlen
    - lxc_mkdir_p
    - SYSWARN
    - lxc_free_array
    - lxc_string_split
    linkageType: ''
    returnType: int
    signature: "int ovl_mkdir(const struct mntent *mntent, const struct lxc_rootfs
      *rootfs,\n\t      const char *lxc_name, const char *lxc_path)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:675,1
    - Dst: remove_trailing_slashes
      Src: /src/lxc/src/lxc/storage/overlay.c:679,1
    - Dst: clone_update_unexp_ovl_paths
      Src: /src/lxc/src/lxc/storage/overlay.c:686,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:693,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:698,1
    - Dst: list_for_each_entry
      Src: /src/lxc/src/lxc/storage/overlay.c:702,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:708,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:713,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/overlay.c:718,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:723,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/storage/overlay.c:724,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/overlay.c:726,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/storage/overlay.c:728,1
    - Dst: lxc_string_replace
      Src: /src/lxc/src/lxc/storage/overlay.c:732,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:738,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:739,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:741,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/overlay.c:742,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:745,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:746,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:751,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 5
    argNames:
    - lxc_conf
    - lxc_path
    - lxc_name
    - newpath
    - newname
    argTypes:
    - struct lxc_conf*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 753
    functionName: ovl_update_abs_paths
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 1
    functionsReached:
    - clone_update_unexp_ovl_paths
    - lxc_string_replace
    - free
    - strstr
    - snprintf
    - list_for_each_entry
    - strdup
    - remove_trailing_slashes
    linkageType: ''
    returnType: int
    signature: "int ovl_update_abs_paths(struct lxc_conf *lxc_conf, const char *lxc_path,\n\t\t\t
      const char *lxc_name, const char *newpath,\n\t\t\t const char *newname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/overlay.c:760,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/overlay.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - lower
    - target
    - name
    - mountflags
    - options
    argTypes:
    - char*
    - char*
    - char*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 767
    functionName: ovl_remount_on_enodev
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 1
    functionsReached:
    - mount
    linkageType: ''
    returnType: int
    signature: "int ovl_remount_on_enodev(const char *lower, const char *target,\n\t\t\t\t
      const char *name, unsigned long mountflags,\n\t\t\t\t const void *options)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/lxc/src/lxc/storage/overlay.c:776,1
    - Dst: getline
      Src: /src/lxc/src/lxc/storage/overlay.c:780,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/overlay.c:781,1
    - Dst: fclose
      Src: /src/lxc/src/lxc/storage/overlay.c:787,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/overlay.c:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 790
    functionName: ovl_detect_name
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 1
    functionsReached:
    - strcmp
    - fclose
    - free
    - getline
    - fopen
    linkageType: ''
    returnType: char
    signature: char *ovl_detect_name(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/overlay.c:801,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/storage/overlay.c:802,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/overlay.c:805,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/overlay.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - src
    - dest
    - conf
    argTypes:
    - char*
    - char*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 792
    functionDepth: 5
    functionLinenumber: 792
    functionLinenumberEnd: 813
    functionName: ovl_do_rsync
    functionSourceFile: /src/lxc/src/lxc/storage/overlay.c
    functionUses: 1
    functionsReached:
    - userns_exec_full
    - am_guest_unpriv
    - ERROR
    - run_command
    linkageType: ''
    returnType: int
    signature: "int ovl_do_rsync(const char *src, const char *dest,\n\t\t\tstruct
      lxc_conf *conf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/zfs.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: zfs_detect_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int zfs_detect_exec_wrapper(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execvp
      Src: /src/lxc/src/lxc/storage/zfs.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: zfs_create_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - execvp
    linkageType: ''
    returnType: int
    signature: int zfs_create_exec_wrapper(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/zfs.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: zfs_delete_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int zfs_delete_exec_wrapper(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/zfs.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: zfs_snapshot_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int zfs_snapshot_exec_wrapper(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/zfs.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: zfs_clone_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int zfs_clone_exec_wrapper(void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/zfs.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: zfs_get_parent_snapshot_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int zfs_get_parent_snapshot_exec_wrapper(void *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_popen
      Src: /src/lxc/src/lxc/storage/zfs.c:92,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:94,1
    - Dst: fgets
      Src: /src/lxc/src/lxc/storage/zfs.c:98,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/zfs.c:99,1
    - Dst: lxc_pclose
      Src: /src/lxc/src/lxc/storage/zfs.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - path
    - output
    - inlen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 106
    functionName: zfs_list_entry
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - strstr
    - lxc_pclose
    - fgets
    - lxc_popen
    linkageType: ''
    returnType: bool
    signature: bool zfs_list_entry(const char *path, char *output, size_t inlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/zfs.c:115,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/zfs.c:123,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:126,1
    - Dst: zfs_list_entry
      Src: /src/lxc/src/lxc/storage/zfs.c:130,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:131,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:136,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:139,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/storage/zfs.c:148,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:148,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/storage/zfs.c:149,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:149,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/zfs.c:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 155
    functionName: zfs_detect
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - run_command
    - strcmp
    - strncmp
    - free
    - strlen
    - zfs_list_entry
    - lxc_char_left_gc
    - lxc_char_right_gc
    - ERROR
    - malloc
    linkageType: ''
    returnType: bool
    signature: bool zfs_detect(const char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/zfs.c:167,1
    - Dst: parse_mntopts_legacy
      Src: /src/lxc/src/lxc/storage/zfs.c:173,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:175,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/zfs.c:182,1
    - Dst: zfs_list_entry
      Src: /src/lxc/src/lxc/storage/zfs.c:186,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:188,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/zfs.c:192,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:194,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:214,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:215,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/storage/zfs.c:217,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:219,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:224,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:226,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/zfs.c:230,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:232,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/zfs.c:236,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 238
    functionName: zfs_mount
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    - SYSERROR
    - snprintf
    - strchr
    - lxc_storage_get_path
    - zfs_list_entry
    - TRACE
    - parse_mntopts_legacy
    - realloc
    - ERROR
    - mount
    linkageType: ''
    returnType: int
    signature: int zfs_mount(struct lxc_storage *bdev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/zfs.c:244,1
    - Dst: umount
      Src: /src/lxc/src/lxc/storage/zfs.c:250,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:252,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/zfs.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 257
    functionName: zfs_umount
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount
    - SYSERROR
    - TRACE
    linkageType: ''
    returnType: int
    signature: int zfs_umount(struct lxc_storage *bdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:275,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:275,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:277,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/zfs.c:281,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:281,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/zfs.c:281,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:284,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:287,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:287,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:290,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:290,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/zfs.c:292,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:292,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/zfs.c:295,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:295,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:297,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:297,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:303,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:306,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:307,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/zfs.c:310,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - conf
    - orig
    - new
    - newsize
    argTypes:
    - struct lxc_conf*
    - struct lxc_storage*
    - struct lxc_storage*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 313
    functionName: zfs_copy
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - run_command
    - type::type
    - lxc_mkdir_p
    - SYSERROR
    - snprintf
    - lxc_storage_get_path
    - INFO
    - TRACE
    - src::src
    - dest::dest
    - ERROR
    linkageType: ''
    returnType: bool
    signature: "bool zfs_copy(struct lxc_conf *conf, struct lxc_storage *orig,\n\t
      \     struct lxc_storage *new, uint64_t newsize)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/zfs.c:326,1
    - Dst: zfs_list_entry
      Src: /src/lxc/src/lxc/storage/zfs.c:330,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:332,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/zfs.c:336,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:338,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/zfs.c:346,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:348,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/zfs.c:352,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:352,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:354,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:354,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:355,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:368,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:369,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/storage/zfs.c:370,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:372,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:373,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:379,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:381,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:382,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:387,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:390,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:391,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:394,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/zfs.c:396,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:399,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:399,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:401,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:402,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/zfs.c:406,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:406,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/zfs.c:406,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:409,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:412,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:412,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:414,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:414,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/zfs.c:416,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:416,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:418,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 4
    argNames:
    - conf
    - orig
    - new
    - newsize
    argTypes:
    - struct lxc_conf*
    - struct lxc_storage*
    - struct lxc_storage*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 420
    functionName: zfs_snapshot
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - run_command
    - type::type
    - dest::dest
    - free
    - strrchr
    - strlen
    - snprintf
    - strchr
    - lxc_storage_get_path
    - realloc
    - zfs_list_entry
    - src::src
    - INFO
    - TRACE
    - ERROR
    - strdup
    linkageType: ''
    returnType: bool
    signature: "bool zfs_snapshot(struct lxc_conf *conf, struct lxc_storage *orig,\n\t\t
      \ struct lxc_storage *new, uint64_t newsize)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/zfs.c:436,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:437,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/zfs.c:442,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/zfs.c:443,1
    - Dst: zfs_list_entry
      Src: /src/lxc/src/lxc/storage/zfs.c:447,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:450,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/zfs.c:454,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:456,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/zfs.c:464,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:466,1
    - Dst: strndup
      Src: /src/lxc/src/lxc/storage/zfs.c:471,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:473,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/zfs.c:478,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:480,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/zfs.c:484,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:486,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:501,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:502,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/storage/zfs.c:509,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:510,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:511,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:512,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/storage/zfs.c:517,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:517,1
    - Dst: memmove
      Src: /src/lxc/src/lxc/storage/zfs.c:518,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:521,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/zfs.c:521,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:523,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:539,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:539,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:539,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/zfs.c:540,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:541,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:542,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:546,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:546,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:548,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/zfs.c:552,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:552,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:554,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/zfs.c:554,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 559
    functionName: zfs_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - strchr
    - lxc_global_config_value
    - memmove
    - ERROR
    - free
    - strlen
    - lxc_mkdir_p
    - snprintf
    - lxc_storage_get_path
    - src::src
    - strrchr
    - strndup
    - SYSERROR
    - zfs_list_entry
    - dest::dest
    - strcmp
    - realloc
    - strdup
    - malloc
    linkageType: ''
    returnType: int
    signature: "int zfs_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,\n\t\t
      \  const char *oldname, const char *cname, const char *oldpath,\n\t\t   const
      char *lxcpath, int snap, uint64_t newsize,\n\t\t   struct lxc_conf *conf)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/zfs.c:571,1
    - Dst: zfs_list_entry
      Src: /src/lxc/src/lxc/storage/zfs.c:577,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:579,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/zfs.c:583,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:585,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:593,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:596,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:602,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/storage/zfs.c:608,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:608,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/storage/zfs.c:609,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:609,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/zfs.c:611,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:612,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/zfs.c:618,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:620,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:624,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:628,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:630,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:633,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/storage/zfs.c:639,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:639,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/storage/zfs.c:640,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:640,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/zfs.c:644,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:646,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:647,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:653,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:656,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:658,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:659,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:662,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:664,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:667,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:675,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:678,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:680,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:682,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/zfs.c:684,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 82
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 686
    functionName: zfs_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - run_command
    - strcmp
    - free
    - strlen
    - strchr
    - lxc_storage_get_path
    - strdup
    - zfs_list_entry
    - INFO
    - lxc_char_left_gc
    - lxc_char_right_gc
    - ERROR
    linkageType: ''
    returnType: int
    signature: int zfs_destroy(struct lxc_storage *orig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/zfs.c:705,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/zfs.c:709,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:711,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:715,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/zfs.c:715,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/zfs.c:718,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:720,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:724,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:726,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/zfs.c:729,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/zfs.c:731,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:733,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/zfs.c:739,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:742,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/zfs.c:745,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/zfs.c:747,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/zfs.c:750,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/zfs.c:752,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 757
    functionName: zfs_create
    functionSourceFile: /src/lxc/src/lxc/storage/zfs.c
    functionUses: 0
    functionsReached:
    - run_command
    - strlen
    - lxc_mkdir_p
    - snprintf
    - SYSERROR
    - strdup
    - lxc_storage_get_path
    - INFO
    - lxc_global_config_value
    - TRACE
    - ERROR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int zfs_create(struct lxc_storage *bdev, const char *dest, const char
      *n,\n\t       struct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage.c:191,1
    - Dst: strcspn
      Src: /src/lxc/src/lxc/storage/storage.c:193,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/storage.c:199,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/storage.c:201,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/storage/storage.c:209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - path
    - type
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 211
    functionName: get_storage_by_name
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strlen
    - DEBUG
    - strncmp
    linkageType: ''
    returnType: struct lxc_storage_type
    signature: "struct lxc_storage_type *get_storage_by_name(const char *path,\n\t\t\t\t\t\t\t
      \ const char *type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_storage_by_name
      Src: /src/lxc/src/lxc/storage/storage.c:220,1
    - Dst: ops::detect
      Src: /src/lxc/src/lxc/storage/storage.c:225,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/storage/storage.c:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 233
    functionName: storage_query
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 0
    functionsReached:
    - DEBUG
    - ops::detect
    - get_storage_by_name
    linkageType: ''
    returnType: struct lxc_storage_type
    signature: struct lxc_storage_type *storage_query(struct lxc_conf *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:241,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/storage.c:247,1
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/storage.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 256
    functionName: storage_get
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 0
    functionsReached:
    - memset
    - strcmp
    - malloc
    linkageType: ''
    returnType: struct lxc_storage
    signature: struct lxc_storage *storage_get(const char *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: storage_get
      Src: /src/lxc/src/lxc/storage/storage.c:269,1
    - Dst: struct lxc_storage*::ops::create
      Src: /src/lxc/src/lxc/storage/storage.c:273,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/storage/storage.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - dest
    - type
    - cname
    - specs
    - conf
    argTypes:
    - char*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 280
    functionName: do_storage_create
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 1
    functionsReached:
    - storage_put
    - storage_get
    - struct lxc_storage*::ops::create
    linkageType: ''
    returnType: struct lxc_storage
    signature: "struct lxc_storage *do_storage_create(const char *dest, const char
      *type,\n\t\t\t\t\t     const char *cname,\n\t\t\t\t\t     struct bdev_specs
      *specs,\n\t\t\t\t\t     const struct lxc_conf *conf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: storage_init
      Src: /src/lxc/src/lxc/storage/storage.c:287,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/storage/storage.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 294
    functionName: storage_can_backup
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 1
    functionsReached:
    - storage_put
    - storage_init
    linkageType: ''
    returnType: bool
    signature: bool storage_can_backup(struct lxc_conf *conf)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:325,1
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/storage.c:332,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:333,1
    - Dst: lxc_storage_prepare
      Src: /src/lxc/src/lxc/storage/storage.c:338,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:340,1
    - Dst: dup_cloexec
      Src: /src/lxc/src/lxc/storage/storage.c:346,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage.c:348,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/storage/storage.c:349,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage.c:358,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage.c:358,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage.c:358,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/storage.c:359,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:361,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/storage.c:365,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:367,1
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/storage.c:371,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/storage.c:373,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/storage.c:375,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:387,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/storage.c:390,1
    - Dst: unpriv_snap_allowed
      Src: /src/lxc/src/lxc/storage/storage.c:390,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:391,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:398,1
    - Dst: lvm_is_thin_volume
      Src: /src/lxc/src/lxc/storage/storage.c:399,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:401,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:402,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:405,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:410,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:411,1
    - Dst: storage_get::storage_get
      Src: /src/lxc/src/lxc/storage/storage.c:416,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:418,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/storage.c:422,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:422,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/storage.c:426,1
    - Dst: clone_paths
      Src: /src/lxc/src/lxc/storage/storage.c:426,1
    - Dst: oldname::oldname
      Src: /src/lxc/src/lxc/storage/storage.c:426,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:429,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:437,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:437,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:438,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:438,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:443,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:443,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:443,1
    - Dst: btrfs_same_fs
      Src: /src/lxc/src/lxc/storage/storage.c:446,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/storage.c:446,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/storage.c:447,1
    - Dst: snapshot
      Src: /src/lxc/src/lxc/storage/storage.c:447,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/storage.c:449,1
    - Dst: copy
      Src: /src/lxc/src/lxc/storage/storage.c:449,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:457,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:457,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:457,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/storage.c:461,1
    - Dst: snapshot
      Src: /src/lxc/src/lxc/storage/storage.c:461,1
    - Dst: newsize::newsize
      Src: /src/lxc/src/lxc/storage/storage.c:461,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/storage.c:463,1
    - Dst: copy
      Src: /src/lxc/src/lxc/storage/storage.c:463,1
    - Dst: newsize::newsize
      Src: /src/lxc/src/lxc/storage/storage.c:463,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:471,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:471,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:471,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/storage.c:475,1
    - Dst: snapshot
      Src: /src/lxc/src/lxc/storage/storage.c:475,1
    - Dst: newsize::newsize
      Src: /src/lxc/src/lxc/storage/storage.c:475,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/storage.c:477,1
    - Dst: copy
      Src: /src/lxc/src/lxc/storage/storage.c:477,1
    - Dst: newsize::newsize
      Src: /src/lxc/src/lxc/storage/storage.c:477,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:484,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:485,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:485,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:485,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:485,1
    - Dst: ovl_get_lower
      Src: /src/lxc/src/lxc/storage/storage.c:486,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/storage.c:486,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/storage.c:488,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/storage.c:488,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/storage.c:488,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/storage.c:490,1
    - Dst: chown_mapped_root
      Src: /src/lxc/src/lxc/storage/storage.c:491,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/storage.c:493,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/storage.c:493,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/storage.c:503,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/storage/storage.c:504,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/storage.c:508,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage.c:511,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/storage.c:512,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/storage/storage.c:519,1
    - Dst: lxc_storage_put
      Src: /src/lxc/src/lxc/storage/storage.c:527,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 145
    argCount: 8
    argNames:
    - c
    - cname
    - lxcpath
    - bdevtype
    - flags
    - bdevdata
    - newsize
    - needs_rdep
    argTypes:
    - struct lxc_container*
    - char*
    - char*
    - char*
    - int
    - char*
    - uint64_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 299
    functionDepth: 6
    functionLinenumber: 299
    functionLinenumberEnd: 530
    functionName: storage_copy
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 1
    functionsReached:
    - btrfs_same_fs
    - chown_mapped_root
    - oldname::oldname
    - dup_cloexec
    - run_command
    - lxc_storage_put
    - storage_get::storage_get
    - strlen
    - strstr
    - snprintf
    - lxc_mkdir_p
    - lxc_storage_get_path
    - src::src
    - lxc_storage_prepare
    - userns_exec_full
    - WARN
    - type::type
    - unpriv_snap_allowed
    - am_guest_unpriv
    - SYSERROR
    - TRACE
    - clone_paths
    - dest::dest
    - newsize::newsize
    - stat
    - strcmp
    - lvm_is_thin_volume
    - copy
    - snapshot
    - ovl_get_lower
    - ops::ops
    - ERROR
    - malloc
    linkageType: ''
    returnType: struct lxc_storage
    signature: "struct lxc_storage *storage_copy(struct lxc_container *c, const char
      *cname,\n\t\t\t\t const char *lxcpath, const char *bdevtype,\n\t\t\t\t int flags,
      const char *bdevdata,\n\t\t\t\t uint64_t newsize, bool *needs_rdep)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: do_storage_create
      Src: /src/lxc/src/lxc/storage/storage.c:550,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:552,1
    - Dst: do_storage_create
      Src: /src/lxc/src/lxc/storage/storage.c:559,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/storage.c:568,1
    - Dst: must_copy_string
      Src: /src/lxc/src/lxc/storage/storage.c:572,1
    - Dst: lxc_iterate_parts
      Src: /src/lxc/src/lxc/storage/storage.c:573,1
    - Dst: do_storage_create
      Src: /src/lxc/src/lxc/storage/storage.c:574,1
    - Dst: do_storage_create
      Src: /src/lxc/src/lxc/storage/storage.c:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - dest
    - type
    - cname
    - specs
    - conf
    argTypes:
    - char*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 581
    functionName: storage_create
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 3
    functionsReached:
    - strcmp
    - must_copy_string
    - strchr
    - do_storage_create
    - lxc_iterate_parts
    linkageType: ''
    returnType: struct lxc_storage
    signature: "struct lxc_storage *storage_create(const char *dest, const char *type,\n\t\t\t\t
      \  const char *cname, struct bdev_specs *specs,\n\t\t\t\t   const struct lxc_conf
      *conf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: storage_init
      Src: /src/lxc/src/lxc/storage/storage.c:589,1
    - Dst: struct lxc_storage*::ops::destroy
      Src: /src/lxc/src/lxc/storage/storage.c:593,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/storage/storage.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 599
    functionName: storage_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 2
    functionsReached:
    - struct lxc_storage*::ops::destroy
    - storage_put
    - storage_init
    linkageType: ''
    returnType: bool
    signature: bool storage_destroy(struct lxc_conf *conf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/lxc/src/lxc/storage/storage.c:609,1
    - Dst: storage_query
      Src: /src/lxc/src/lxc/storage/storage.c:614,1
    - Dst: zalloc
      Src: /src/lxc/src/lxc/storage/storage.c:618,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/storage.c:627,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/storage.c:630,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/storage.c:633,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 639
    functionName: storage_init
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 3
    functionsReached:
    - strcmp
    - BUILD_BUG_ON
    - storage_query
    - zalloc
    - strdup
    linkageType: ''
    returnType: struct lxc_storage
    signature: struct lxc_storage *storage_init(struct lxc_conf *conf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:648,1
    - Dst: storage_init
      Src: /src/lxc/src/lxc/storage/storage.c:650,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:654,1
    - Dst: storage_put
      Src: /src/lxc/src/lxc/storage/storage.c:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 4
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: storage_lxc_is_dir
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 1
    functionsReached:
    - strcmp
    - storage_put
    - storage_init
    linkageType: ''
    returnType: bool
    signature: bool storage_lxc_is_dir(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/storage/storage.c:664,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/storage/storage.c:665,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/storage/storage.c:666,1
    - Dst: free_disarm
      Src: /src/lxc/src/lxc/storage/storage.c:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 669
    functionName: storage_put
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 12
    functionsReached:
    - free_disarm
    linkageType: ''
    returnType: void
    signature: void storage_put(struct lxc_storage *bdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:677,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage.c:678,1
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/storage.c:681,1
    - Dst: S_ISBLK
      Src: /src/lxc/src/lxc/storage/storage.c:682,1
    - Dst: storage_query
      Src: /src/lxc/src/lxc/storage/storage.c:685,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:689,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:690,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:691,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:692,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage.c:693,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 697
    functionName: rootfs_is_blockdev
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 3
    functionsReached:
    - stat
    - strcmp
    - strlen
    - S_ISBLK
    - storage_query
    linkageType: ''
    returnType: bool
    signature: bool rootfs_is_blockdev(struct lxc_conf *conf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage.c:703,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/storage.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - src
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 708
    functionName: lxc_storage_get_path
    functionSourceFile: /src/lxc/src/lxc/storage/storage.c
    functionUses: 15
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: char
    signature: char *lxc_storage_get_path(char *src, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_rsync
      Src: /src/lxc/src/lxc/storage/rsync.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: lxc_storage_rsync_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/rsync.c
    functionUses: 0
    functionsReached:
    - lxc_rsync
    linkageType: ''
    returnType: int
    signature: int lxc_storage_rsync_exec_wrapper(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/storage/rsync.c:33,1
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/storage/rsync.c:36,1
    - Dst: lxc_rsync_exec
      Src: /src/lxc/src/lxc/storage/rsync.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: lxc_rsync_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/rsync.c
    functionUses: 0
    functionsReached:
    - lxc_switch_uid_gid
    - lxc_drop_groups
    - lxc_rsync_exec
    linkageType: ''
    returnType: int
    signature: int lxc_rsync_exec_wrapper(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/rsync.c:48,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/rsync.c:49,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/rsync.c:53,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/rsync.c:55,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rsync.c:62,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/rsync.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: lxc_rsync_exec
    functionSourceFile: /src/lxc/src/lxc/storage/rsync.c
    functionUses: 1
    functionsReached:
    - free
    - strlen
    - snprintf
    - execlp
    - malloc
    linkageType: ''
    returnType: int
    signature: int lxc_rsync_exec(const char *src, const char *dest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unshare
      Src: /src/lxc/src/lxc/storage/rsync.c:73,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/rsync.c:75,1
    - Dst: detect_shared_rootfs
      Src: /src/lxc/src/lxc/storage/rsync.c:79,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/rsync.c:79,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/rsync.c:80,1
    - Dst: struct lxc_storage*::ops::mount
      Src: /src/lxc/src/lxc/storage/rsync.c:82,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rsync.c:84,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/rsync.c:87,1
    - Dst: ops::ops
      Src: /src/lxc/src/lxc/storage/rsync.c:89,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/rsync.c:89,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rsync.c:91,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/rsync.c:91,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/rsync.c:91,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/rsync.c:94,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/rsync.c:94,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/rsync.c:94,1
    - Dst: lxc_switch_uid_gid
      Src: /src/lxc/src/lxc/storage/rsync.c:96,1
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/storage/rsync.c:99,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/rsync.c:102,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/rsync.c:103,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/rsync.c:103,1
    - Dst: type::type
      Src: /src/lxc/src/lxc/storage/rsync.c:103,1
    - Dst: lxc_rsync_exec
      Src: /src/lxc/src/lxc/storage/rsync.c:105,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rsync.c:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct rsync_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 112
    functionName: lxc_rsync
    functionSourceFile: /src/lxc/src/lxc/storage/rsync.c
    functionUses: 1
    functionsReached:
    - type::type
    - lxc_switch_uid_gid
    - unshare
    - SYSERROR
    - lxc_drop_groups
    - struct lxc_storage*::ops::mount
    - lxc_rsync_exec
    - lxc_storage_get_path
    - TRACE
    - src::src
    - detect_shared_rootfs
    - dest::dest
    - ops::ops
    - ERROR
    - mount
    linkageType: ''
    returnType: int
    signature: int lxc_rsync(struct rsync_data *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:42,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/loop.c:49,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/loop.c:49,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/loop.c:49,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/loop.c:50,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/loop.c:51,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:53,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/loop.c:57,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/loop.c:58,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:59,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/loop.c:63,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/loop.c:63,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:65,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/loop.c:69,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/loop.c:70,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:71,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/loop.c:75,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/loop.c:75,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:77,1
    - Dst: is_blktype
      Src: /src/lxc/src/lxc/storage/loop.c:85,1
    - Dst: blk_getsize
      Src: /src/lxc/src/lxc/storage/loop.c:87,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:88,1
    - Dst: detect_fs
      Src: /src/lxc/src/lxc/storage/loop.c:94,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/loop.c:95,1
    - Dst: do_loop_create
      Src: /src/lxc/src/lxc/storage/loop.c:102,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:104,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 111
    functionName: loop_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/loop.c
    functionUses: 0
    functionsReached:
    - must_realloc
    - blk_getsize
    - strlen
    - snprintf
    - INFO
    - src::src
    - dest::dest
    - do_loop_create
    - ERROR
    - is_blktype
    - detect_fs
    - malloc
    linkageType: ''
    returnType: int
    signature: "int loop_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,\n\t\t
      \   const char *oldname, const char *cname, const char *oldpath,\n\t\t    const
      char *lxcpath, int snap, uint64_t newsize,\n\t\t    struct lxc_conf *conf)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/loop.c:127,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/loop.c:128,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/loop.c:130,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:132,1
    - Dst: sprintf
      Src: /src/lxc/src/lxc/storage/loop.c:136,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:138,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/loop.c:142,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:144,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/loop.c:148,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:150,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/loop.c:162,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:164,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/loop.c:168,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:170,1
    - Dst: do_loop_create
      Src: /src/lxc/src/lxc/storage/loop.c:175,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:177,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 184
    functionName: loop_create
    functionSourceFile: /src/lxc/src/lxc/storage/loop.c
    functionUses: 2
    functionsReached:
    - strlen
    - lxc_mkdir_p
    - snprintf
    - strdup
    - sprintf
    - do_loop_create
    - malloc
    - ERROR
    - must_realloc
    linkageType: ''
    returnType: int
    signature: "int loop_create(struct lxc_storage *bdev, const char *dest, const
      char *n,\n\t\tstruct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/loop.c:190,1
    - Dst: unlink
      Src: /src/lxc/src/lxc/storage/loop.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: loop_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/loop.c
    functionUses: 0
    functionsReached:
    - unlink
    - strncmp
    linkageType: ''
    returnType: int
    signature: int loop_destroy(struct lxc_storage *orig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/loop.c:201,1
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/loop.c:204,1
    - Dst: __S_ISTYPE
      Src: /src/lxc/src/lxc/storage/loop.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 212
    functionName: loop_detect
    functionSourceFile: /src/lxc/src/lxc/storage/loop.c
    functionUses: 0
    functionsReached:
    - stat
    - __S_ISTYPE
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool loop_detect(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/loop.c:220,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/loop.c:227,1
    - Dst: lxc_prepare_loop_dev
      Src: /src/lxc/src/lxc/storage/loop.c:229,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:231,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/storage/loop.c:234,1
    - Dst: mount_unknown_fs
      Src: /src/lxc/src/lxc/storage/loop.c:236,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:238,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/loop.c:240,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/storage/loop.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 249
    functionName: loop_mount
    functionSourceFile: /src/lxc/src/lxc/storage/loop.c
    functionUses: 0
    functionsReached:
    - strcmp
    - close
    - lxc_storage_get_path
    - mount_unknown_fs
    - DEBUG
    - lxc_prepare_loop_dev
    - ERROR
    linkageType: ''
    returnType: int
    signature: int loop_mount(struct lxc_storage *bdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/loop.c:255,1
    - Dst: umount
      Src: /src/lxc/src/lxc/storage/loop.c:261,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/loop.c:264,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/loop.c:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 275
    functionName: loop_umount
    functionSourceFile: /src/lxc/src/lxc/storage/loop.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount
    - SYSERROR
    - close
    linkageType: ''
    returnType: int
    signature: int loop_umount(struct lxc_storage *bdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: creat
      Src: /src/lxc/src/lxc/storage/loop.c:285,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/loop.c:287,1
    - Dst: lseek
      Src: /src/lxc/src/lxc/storage/loop.c:291,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/loop.c:293,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/loop.c:295,1
    - Dst: write
      Src: /src/lxc/src/lxc/storage/loop.c:299,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/loop.c:301,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/loop.c:302,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/loop.c:306,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/loop.c:308,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/loop.c:313,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/loop.c:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - path
    - size
    - fstype
    argTypes:
    - char*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 322
    functionName: do_loop_create
    functionSourceFile: /src/lxc/src/lxc/storage/loop.c
    functionUses: 2
    functionsReached:
    - run_command
    - close
    - creat
    - SYSERROR
    - ERROR
    - write
    - lseek
    linkageType: ''
    returnType: int
    signature: int do_loop_create(const char *path, uint64_t size, const char *fstype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:35,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: rbd_create_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int rbd_create_wrapper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:51,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: rbd_map_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int rbd_map_wrapper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:65,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: rbd_unmap_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int rbd_unmap_wrapper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:80,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/rbd.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: rbd_delete_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - execlp
    linkageType: ''
    returnType: int
    signature: int rbd_delete_wrapper(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: rbd_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int rbd_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,\n\t\t
      \  const char *oldname, const char *cname, const char *oldpath,\n\t\t   const
      char *lxcpath, int snap, uint64_t newsize,\n\t\t   struct lxc_conf *conf)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/rbd.c:116,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/rbd.c:123,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/rbd.c:126,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/rbd.c:126,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/rbd.c:127,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:129,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/rbd.c:133,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:135,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/rbd.c:145,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:147,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/rbd.c:155,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:158,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/rbd.c:163,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:166,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/rbd.c:176,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/rbd.c:177,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:180,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/rbd.c:185,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:187,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/rbd.c:191,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:193,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/rbd.c:197,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 199
    functionName: rbd_create
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - run_command
    - strlen
    - lxc_mkdir_p
    - snprintf
    - lxc_storage_get_path
    - strdup
    - TRACE
    - lxc_global_config_value
    - ERROR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int rbd_create(struct lxc_storage *bdev, const char *dest, const char
      *n,\n\t       struct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/rbd.c:210,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/rbd.c:212,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/storage/rbd.c:213,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/rbd.c:215,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:218,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/rbd.c:224,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/rbd.c:225,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/storage/rbd.c:226,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/rbd.c:229,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 238
    functionName: rbd_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - run_command
    - strlcpy
    - file_exists
    - strlen
    - lxc_storage_get_path
    - lxc_global_config_value
    - ERROR
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int rbd_destroy(struct lxc_storage *orig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/rbd.c:242,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/rbd.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: rbd_detect
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool rbd_detect(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/rbd.c:255,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/rbd.c:261,1
    - Dst: file_exists
      Src: /src/lxc/src/lxc/storage/rbd.c:262,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/rbd.c:266,1
    - Dst: mount_unknown_fs
      Src: /src/lxc/src/lxc/storage/rbd.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 271
    functionName: rbd_mount
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - strcmp
    - file_exists
    - lxc_storage_get_path
    - mount_unknown_fs
    - ERROR
    linkageType: ''
    returnType: int
    signature: int rbd_mount(struct lxc_storage *bdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/rbd.c:275,1
    - Dst: umount
      Src: /src/lxc/src/lxc/storage/rbd.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: rbd_umount
    functionSourceFile: /src/lxc/src/lxc/storage/rbd.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount
    linkageType: ''
    returnType: int
    signature: int rbd_umount(struct lxc_storage *bdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: requires_nbd
      Src: /src/lxc/src/lxc/storage/storage_utils.c:55,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/storage_utils.c:58,1
    - Dst: attach_nbd
      Src: /src/lxc/src/lxc/storage/storage_utils.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 67
    functionName: attach_block_device
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - strchr
    - attach_nbd
    - requires_nbd
    linkageType: ''
    returnType: bool
    signature: bool attach_block_device(struct lxc_conf *conf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/storage_utils.c:77,1
    - Dst: open
      Src: /src/lxc/src/lxc/storage/storage_utils.c:79,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:81,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/storage_utils.c:86,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:88,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/storage_utils.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - bdev
    - size
    argTypes:
    - struct lxc_storage*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: blk_getsize
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - close
    - SYSERROR
    - lxc_storage_get_path
    - ioctl
    - open
    linkageType: ''
    returnType: int
    signature: int blk_getsize(struct lxc_storage *bdev, uint64_t *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: detach_nbd_idx
      Src: /src/lxc/src/lxc/storage/storage_utils.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: detach_block_device
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - detach_nbd_idx
    linkageType: ''
    returnType: void
    signature: void detach_block_device(struct lxc_conf *conf)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/storage_utils.c:123,1
    - Dst: pipe
      Src: /src/lxc/src/lxc/storage/storage_utils.c:125,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:127,1
    - Dst: fork
      Src: /src/lxc/src/lxc/storage/storage_utils.c:131,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:133,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/storage_utils.c:140,1
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/storage_utils.c:141,1
    - Dst: read
      Src: /src/lxc/src/lxc/storage/storage_utils.c:143,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:145,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:147,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/storage_utils.c:151,1
    - Dst: wait
      Src: /src/lxc/src/lxc/storage/storage_utils.c:152,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/storage_utils.c:158,1
    - Dst: unshare
      Src: /src/lxc/src/lxc/storage/storage_utils.c:163,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:164,1
    - Dst: detect_shared_rootfs
      Src: /src/lxc/src/lxc/storage/storage_utils.c:166,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/storage_utils.c:166,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:167,1
    - Dst: mount_unknown_fs
      Src: /src/lxc/src/lxc/storage/storage_utils.c:169,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:171,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:173,1
    - Dst: linkderef
      Src: /src/lxc/src/lxc/storage/storage_utils.c:176,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:178,1
    - Dst: fopen
      Src: /src/lxc/src/lxc/storage/storage_utils.c:180,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:182,1
    - Dst: getline
      Src: /src/lxc/src/lxc/storage/storage_utils.c:184,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/storage_utils.c:187,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:189,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:192,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/storage_utils.c:195,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:197,1
    - Dst: strchr
      Src: /src/lxc/src/lxc/storage/storage_utils.c:200,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:202,1
    - Dst: write
      Src: /src/lxc/src/lxc/storage/storage_utils.c:206,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage_utils.c:206,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage_utils.c:207,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:208,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:210,1
    - Dst: _exit
      Src: /src/lxc/src/lxc/storage/storage_utils.c:213,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 3
    argNames:
    - bdev
    - type
    - len
    argTypes:
    - struct lxc_storage*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 214
    functionName: detect_fs
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - close
    - wait
    - strchr
    - fopen
    - mount
    - strlen
    - lxc_storage_get_path
    - detect_shared_rootfs
    - memset
    - pipe
    - SYSERROR
    - mount_unknown_fs
    - linkderef
    - read
    - write
    - strcmp
    - unshare
    - INFO
    - _exit
    - getline
    - fork
    - ERROR
    linkageType: ''
    returnType: int
    signature: int detect_fs(struct lxc_storage *bdev, char *type, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage_utils.c:227,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/storage_utils.c:229,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/storage_utils.c:233,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/storage_utils.c:235,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/storage_utils.c:239,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:240,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:242,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/storage_utils.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 246
    functionName: do_mkfs_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 0
    functionsReached:
    - free
    - strlen
    - SYSERROR
    - snprintf
    - TRACE
    - execlp
    - malloc
    linkageType: ''
    returnType: int
    signature: int do_mkfs_exec_wrapper(void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: is_blktype
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_blktype(struct lxc_storage *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/lxc/src/lxc/storage/storage_utils.c:286,1
    - Dst: lxc_file_for_each_line
      Src: /src/lxc/src/lxc/storage/storage_utils.c:289,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:291,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - rootfs
    - target
    - options
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 302
    functionName: mount_unknown_fs
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 4
    functionsReached:
    - ERROR
    - lxc_file_for_each_line
    - access
    linkageType: ''
    returnType: int
    signature: "int mount_unknown_fs(const char *rootfs, const char *target,\n\t\t
      \    const char *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/lxc/src/lxc/storage/storage_utils.c:321,1
    - Dst: lxc_char_left_gc
      Src: /src/lxc/src/lxc/storage/storage_utils.c:325,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage_utils.c:325,1
    - Dst: lxc_char_right_gc
      Src: /src/lxc/src/lxc/storage/storage_utils.c:326,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/storage_utils.c:326,1
    - Dst: DEBUG
      Src: /src/lxc/src/lxc/storage/storage_utils.c:328,1
    - Dst: parse_mntopts_legacy
      Src: /src/lxc/src/lxc/storage/storage_utils.c:331,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/storage_utils.c:332,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/storage_utils.c:336,1
    - Dst: SYSDEBUG
      Src: /src/lxc/src/lxc/storage/storage_utils.c:337,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/storage_utils.c:338,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/storage_utils.c:342,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/storage_utils.c:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - buffer
    - data
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 348
    functionName: find_fstype_cb
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 0
    functionsReached:
    - SYSDEBUG
    - free
    - strlen
    - strstr
    - INFO
    - lxc_char_left_gc
    - DEBUG
    - parse_mntopts_legacy
    - lxc_char_right_gc
    - mount
    linkageType: ''
    returnType: int
    signature: int find_fstype_cb(char *buffer, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/storage_utils.c:355,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:357,1
    - Dst: S_ISLNK
      Src: /src/lxc/src/lxc/storage/storage_utils.c:361,1
    - Dst: readlink
      Src: /src/lxc/src/lxc/storage/storage_utils.c:364,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:366,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:369,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - path
    - dest
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 375
    functionName: linkderef
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - stat
    - SYSERROR
    - readlink
    - S_ISLNK
    - ERROR
    linkageType: ''
    returnType: char
    signature: char *linkderef(const char *path, char *dest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:388,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:389,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:390,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:391,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:392,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:401,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:402,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:403,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:404,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:405,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 9
    argCount: 4
    argNames:
    - b
    - t
    - snap
    - maybesnap
    argTypes:
    - struct lxc_storage*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 409
    functionName: unpriv_snap_allowed
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: "bool unpriv_snap_allowed(struct lxc_storage *b, const char *t, bool
      snap,\n\t\t\t bool maybesnap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:413,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:414,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:415,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:416,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:417,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:418,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:419,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:420,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/storage_utils.c:421,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: lxc_is_valid_storage_type
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool lxc_is_valid_storage_type(const char *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/storage/storage_utils.c:431,1
    - Dst: setgid
      Src: /src/lxc/src/lxc/storage/storage_utils.c:433,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:434,1
    - Dst: setuid
      Src: /src/lxc/src/lxc/storage/storage_utils.c:438,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:439,1
    - Dst: storage_destroy
      Src: /src/lxc/src/lxc/storage/storage_utils.c:443,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/storage_utils.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 449
    functionName: storage_destroy_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/storage_utils.c
    functionUses: 0
    functionsReached:
    - setgid
    - lxc_drop_groups
    - SYSERROR
    - storage_destroy
    - ERROR
    - setuid
    linkageType: ''
    returnType: int
    signature: int storage_destroy_wrapper(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/btrfs.c:50,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:54,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:56,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/btrfs.c:62,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/btrfs.c:71,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:72,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:76,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/storage/btrfs.c:77,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/storage/btrfs.c:79,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:81,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:82,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:88,1
    - Dst: strlcat
      Src: /src/lxc/src/lxc/storage/btrfs.c:94,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:96,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 5
    argNames:
    - fd
    - dir_id
    - objid
    - name
    - name_len
    argTypes:
    - int
    - u64
    - u64
    - char*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 103
    functionName: get_btrfs_subvol_path
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - memset
    - strlcat
    - free
    - strlcpy
    - SYSERROR
    - strlen
    - INFO
    - ioctl
    - ERROR
    - malloc
    linkageType: ''
    returnType: char
    signature: "char *get_btrfs_subvol_path(int fd, u64 dir_id, u64 objid, char *name,\n\t\t\t
      \   u16 name_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/btrfs.c:110,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:113,1
    - Dst: SYSWARN
      Src: /src/lxc/src/lxc/storage/btrfs.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - treeid
    argTypes:
    - int
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: btrfs_list_get_path_rootid
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - memset
    - ioctl
    - SYSWARN
    linkageType: ''
    returnType: int
    signature: int btrfs_list_get_path_rootid(int fd, u64 *treeid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:129,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:135,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: is_btrfs_fs
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 1
    functionsReached:
    - ioctl
    - open
    - close
    linkageType: ''
    returnType: bool
    signature: bool is_btrfs_fs(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/btrfs.c:155,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/storage/btrfs.c:159,1
    - Dst: statfs
      Src: /src/lxc/src/lxc/storage/btrfs.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 167
    functionName: is_btrfs_subvol
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 1
    functionsReached:
    - stat
    - S_ISDIR
    - statfs
    linkageType: ''
    returnType: int
    signature: int is_btrfs_subvol(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/btrfs.c:174,1
    - Dst: is_btrfs_fs
      Src: /src/lxc/src/lxc/storage/btrfs.c:177,1
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/btrfs.c:181,1
    - Dst: S_ISDIR
      Src: /src/lxc/src/lxc/storage/btrfs.c:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 189
    functionName: btrfs_detect
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - is_btrfs_fs
    - stat
    - S_ISDIR
    - strncmp
    linkageType: ''
    returnType: bool
    signature: bool btrfs_detect(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/btrfs.c:198,1
    - Dst: parse_mntopts_legacy
      Src: /src/lxc/src/lxc/storage/btrfs.c:204,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:205,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/btrfs.c:209,1
    - Dst: mount
      Src: /src/lxc/src/lxc/storage/btrfs.c:211,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 214
    functionName: btrfs_mount
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - free
    - lxc_storage_get_path
    - parse_mntopts_legacy
    - mount
    linkageType: ''
    returnType: int
    signature: int btrfs_mount(struct lxc_storage *bdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/btrfs.c:218,1
    - Dst: umount
      Src: /src/lxc/src/lxc/storage/btrfs.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: btrfs_umount
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount
    linkageType: ''
    returnType: int
    signature: int btrfs_umount(struct lxc_storage *bdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/btrfs.c:235,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/btrfs.c:241,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:243,1
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:249,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:251,1
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/btrfs.c:255,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:256,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:258,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:259,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:263,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:266,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 270
    functionName: btrfs_subvolume_create
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - memset
    - close
    - free
    - strlcpy
    - strrchr
    - ioctl
    - strdup
    - open
    linkageType: ''
    returnType: int
    signature: int btrfs_subvolume_create(const char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:277,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:279,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:283,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:285,1
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:289,1
    - Dst: O_RDONLY::O_RDONLY
      Src: /src/lxc/src/lxc/storage/btrfs.c:289,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:291,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:296,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:298,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/btrfs.c:302,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:311,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - orig
    - new
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 317
    functionName: btrfs_same_fs
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 2
    functionsReached:
    - close
    - strncmp
    - SYSERROR
    - ioctl
    - O_RDONLY::O_RDONLY
    - open
    linkageType: ''
    returnType: int
    signature: int btrfs_same_fs(const char *orig, const char *new)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/btrfs.c:328,1
    - Dst: rmdir
      Src: /src/lxc/src/lxc/storage/btrfs.c:332,1
    - Dst: basename
      Src: /src/lxc/src/lxc/storage/btrfs.c:336,1
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:337,1
    - Dst: dirname
      Src: /src/lxc/src/lxc/storage/btrfs.c:341,1
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:342,1
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/btrfs.c:346,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:348,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:352,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:357,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:360,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:362,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - orig
    - new
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 368
    functionName: btrfs_snapshot
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - memset
    - close
    - free
    - strlcpy
    - dirname
    - basename
    - rmdir
    - ioctl
    - strdup
    - open
    linkageType: ''
    returnType: int
    signature: int btrfs_snapshot(const char *orig, const char *new)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lxc_drop_groups
      Src: /src/lxc/src/lxc/storage/btrfs.c:375,1
    - Dst: setgid
      Src: /src/lxc/src/lxc/storage/btrfs.c:377,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:378,1
    - Dst: setuid
      Src: /src/lxc/src/lxc/storage/btrfs.c:382,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:383,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/btrfs.c:387,1
    - Dst: btrfs_snapshot
      Src: /src/lxc/src/lxc/storage/btrfs.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 389
    functionName: btrfs_snapshot_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - setgid
    - lxc_drop_groups
    - lxc_storage_get_path
    - btrfs_snapshot
    - ERROR
    - setuid
    linkageType: ''
    returnType: int
    signature: int btrfs_snapshot_wrapper(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/btrfs.c:401,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:402,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/storage/btrfs.c:407,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/btrfs.c:412,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:413,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/btrfs.c:416,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/btrfs.c:416,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/btrfs.c:418,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/btrfs.c:418,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/btrfs.c:419,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:420,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:421,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/btrfs.c:426,1
    - Dst: mntopts::mntopts
      Src: /src/lxc/src/lxc/storage/btrfs.c:427,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 435
    functionName: btrfs_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - lxc_storage_get_path
    - strdup
    - TRACE
    - src::src
    - lxc_string_join
    - dest::dest
    - ERROR
    - mntopts::mntopts
    linkageType: ''
    returnType: int
    signature: "int btrfs_clonepaths(struct lxc_storage *orig, struct lxc_storage
      *new,\n\t\t     const char *oldname, const char *cname,\n\t\t     const char
      *oldpath, const char *lxcpath, int snap,\n\t\t     uint64_t newsize, struct
      lxc_conf *conf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rmdir
      Src: /src/lxc/src/lxc/storage/btrfs.c:444,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:444,1
    - Dst: btrfs_subvolume_create
      Src: /src/lxc/src/lxc/storage/btrfs.c:448,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:448,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:450,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:450,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/btrfs.c:458,1
    - Dst: userns_exec_full
      Src: /src/lxc/src/lxc/storage/btrfs.c:459,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:462,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:463,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/btrfs.c:470,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:473,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - conf
    - orig
    - new
    - newsize
    argTypes:
    - struct lxc_conf*
    - struct lxc_storage*
    - struct lxc_storage*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 437
    functionDepth: 5
    functionLinenumber: 437
    functionLinenumberEnd: 479
    functionName: btrfs_create_clone
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - userns_exec_full
    - run_command
    - btrfs_subvolume_create
    - am_guest_unpriv
    - SYSERROR
    - rmdir
    - dest::dest
    - ERROR
    linkageType: ''
    returnType: bool
    signature: "bool btrfs_create_clone(struct lxc_conf *conf, struct lxc_storage
      *orig,\n\t\t\tstruct lxc_storage *new, uint64_t newsize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rmdir
      Src: /src/lxc/src/lxc/storage/btrfs.c:486,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:486,1
    - Dst: am_guest_unpriv
      Src: /src/lxc/src/lxc/storage/btrfs.c:490,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:494,1
    - Dst: userns_exec_1
      Src: /src/lxc/src/lxc/storage/btrfs.c:496,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:499,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/btrfs.c:503,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:503,1
    - Dst: btrfs_snapshot
      Src: /src/lxc/src/lxc/storage/btrfs.c:508,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:508,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:510,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:511,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/btrfs.c:515,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/btrfs.c:515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - conf
    - orig
    - new
    - newsize
    argTypes:
    - struct lxc_conf*
    - struct lxc_storage*
    - struct lxc_storage*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 481
    functionDepth: 5
    functionLinenumber: 481
    functionLinenumberEnd: 517
    functionName: btrfs_create_snapshot
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - userns_exec_1
    - am_guest_unpriv
    - SYSERROR
    - TRACE
    - rmdir
    - btrfs_snapshot
    - dest::dest
    - ERROR
    linkageType: ''
    returnType: bool
    signature: "bool btrfs_create_snapshot(struct lxc_conf *conf, struct lxc_storage
      *orig,\n\t\t\t   struct lxc_storage *new, uint64_t newsize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/btrfs.c:524,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:527,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/btrfs.c:531,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:533,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:534,1
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:539,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:541,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:542,1
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/btrfs.c:546,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:547,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:549,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:550,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:554,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/btrfs.c:555,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:557,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:559,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:560,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 562
    functionName: btrfs_do_destroy_subvol
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - memset
    - close
    - free
    - strlcpy
    - strrchr
    - SYSERROR
    - strdup
    - INFO
    - ioctl
    - ERROR
    - open
    linkageType: ''
    returnType: int
    signature: int btrfs_do_destroy_subvol(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - tree
    - id
    argTypes:
    - struct my_btrfs_tree*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: get_btrfs_tree_idx
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_btrfs_tree_idx(struct my_btrfs_tree *tree, u64 id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:583,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:587,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:589,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/btrfs.c:595,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:597,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - id
    - path
    - name_len
    argTypes:
    - u64
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 605
    functionName: create_my_btrfs_tree
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    - malloc
    linkageType: ''
    returnType: struct my_btrfs_tree
    signature: "struct my_btrfs_tree *create_my_btrfs_tree(u64 id, const char *path,\n\t\t\t\t\t\t
      \ int name_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:617,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:621,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/btrfs.c:627,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:628,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:630,1
    - Dst: strlcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - n
    - id
    - parent
    - name
    - name_len
    - dirname
    argTypes:
    - struct mytree_node*
    - u64
    - u64
    - char*
    - u16
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 638
    functionName: update_tree_node
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - free
    - strlcpy
    - strlen
    - malloc
    linkageType: ''
    returnType: bool
    signature: "bool update_tree_node(struct mytree_node *n, u64 id, u64 parent,\n\t\t\t
      \    char *name, u16 name_len, char *dirname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_btrfs_tree_idx
      Src: /src/lxc/src/lxc/storage/btrfs.c:645,1
    - Dst: update_tree_node
      Src: /src/lxc/src/lxc/storage/btrfs.c:647,1
    - Dst: realloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:650,1
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/btrfs.c:655,1
    - Dst: update_tree_node
      Src: /src/lxc/src/lxc/storage/btrfs.c:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - tree
    - id
    - parent
    - name
    - name_len
    - dirname
    argTypes:
    - struct my_btrfs_tree*
    - u64
    - u64
    - char*
    - u16
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 663
    functionName: add_btrfs_tree_node
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - update_tree_node
    - get_btrfs_tree_idx
    - realloc
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool add_btrfs_tree_node(struct my_btrfs_tree *tree, u64 id, u64 parent,\n\t\t\t\tchar
      *name, u16 name_len, char *dirname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:673,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:674,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:677,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct my_btrfs_tree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 679
    functionName: free_btrfs_tree
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_btrfs_tree(struct my_btrfs_tree *tree)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/btrfs.c:695,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/btrfs.c:699,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/btrfs.c:699,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:700,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:702,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/btrfs.c:706,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:708,1
    - Dst: do_remove_btrfs_children
      Src: /src/lxc/src/lxc/storage/btrfs.c:712,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:713,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:714,1
    - Dst: btrfs_do_destroy_subvol
      Src: /src/lxc/src/lxc/storage/btrfs.c:718,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:719,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:720,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/btrfs.c:724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - tree
    - root_id
    - path
    argTypes:
    - struct my_btrfs_tree*
    - u64
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 729
    functionName: do_remove_btrfs_children
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 1
    functionsReached:
    - WARN
    - free
    - strlen
    - snprintf
    - do_remove_btrfs_children
    - btrfs_do_destroy_subvol
    - ERROR
    - malloc
    linkageType: ''
    returnType: bool
    signature: "bool do_remove_btrfs_children(struct my_btrfs_tree *tree, u64 root_id,\n\t\t\t\t
      \    const char *path)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/lxc/src/lxc/storage/btrfs.c:745,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:747,1
    - Dst: btrfs_list_get_path_rootid
      Src: /src/lxc/src/lxc/storage/btrfs.c:751,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:753,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/btrfs.c:755,1
    - Dst: create_my_btrfs_tree
      Src: /src/lxc/src/lxc/storage/btrfs.c:762,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/btrfs.c:762,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:764,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:765,1
    - Dst: memset
      Src: /src/lxc/src/lxc/storage/btrfs.c:770,1
    - Dst: ioctl
      Src: /src/lxc/src/lxc/storage/btrfs.c:784,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:787,1
    - Dst: free_btrfs_tree
      Src: /src/lxc/src/lxc/storage/btrfs.c:788,1
    - Dst: WARN
      Src: /src/lxc/src/lxc/storage/btrfs.c:790,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:795,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:804,1
    - Dst: btrfs_stack_root_ref_name_len
      Src: /src/lxc/src/lxc/storage/btrfs.c:817,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:820,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:822,1
    - Dst: free_btrfs_tree
      Src: /src/lxc/src/lxc/storage/btrfs.c:823,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:824,1
    - Dst: memcpy
      Src: /src/lxc/src/lxc/storage/btrfs.c:828,1
    - Dst: btrfs_stack_root_ref_dirid
      Src: /src/lxc/src/lxc/storage/btrfs.c:830,1
    - Dst: get_btrfs_subvol_path
      Src: /src/lxc/src/lxc/storage/btrfs.c:831,1
    - Dst: add_btrfs_tree_node
      Src: /src/lxc/src/lxc/storage/btrfs.c:834,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:837,1
    - Dst: free_btrfs_tree
      Src: /src/lxc/src/lxc/storage/btrfs.c:838,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:839,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/btrfs.c:874,1
    - Dst: do_remove_btrfs_children
      Src: /src/lxc/src/lxc/storage/btrfs.c:877,1
    - Dst: free_btrfs_tree
      Src: /src/lxc/src/lxc/storage/btrfs.c:878,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:879,1
    - Dst: free_btrfs_tree
      Src: /src/lxc/src/lxc/storage/btrfs.c:883,1
    - Dst: btrfs_do_destroy_subvol
      Src: /src/lxc/src/lxc/storage/btrfs.c:887,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 103
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 888
    functionName: btrfs_lxc_rm_rf
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - memset
    - btrfs_list_get_path_rootid
    - WARN
    - btrfs_stack_root_ref_name_len
    - memcpy
    - close
    - strlen
    - btrfs_do_destroy_subvol
    - create_my_btrfs_tree
    - do_remove_btrfs_children
    - get_btrfs_subvol_path
    - add_btrfs_tree_node
    - ioctl
    - malloc
    - ERROR
    - btrfs_stack_root_ref_dirid
    - open
    - free_btrfs_tree
    linkageType: ''
    returnType: int
    signature: int btrfs_lxc_rm_rf(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: btrfs_detect
      Src: /src/lxc/src/lxc/storage/btrfs.c:892,1
    - Dst: btrfs_lxc_rm_rf
      Src: /src/lxc/src/lxc/storage/btrfs.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 896
    functionName: btrfs_try_remove_subvol
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 1
    functionsReached:
    - btrfs_detect
    - btrfs_lxc_rm_rf
    linkageType: ''
    returnType: bool
    signature: bool btrfs_try_remove_subvol(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/btrfs.c:902,1
    - Dst: btrfs_lxc_rm_rf
      Src: /src/lxc/src/lxc/storage/btrfs.c:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 898
    functionDepth: 4
    functionLinenumber: 898
    functionLinenumberEnd: 905
    functionName: btrfs_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - lxc_storage_get_path
    - btrfs_lxc_rm_rf
    linkageType: ''
    returnType: int
    signature: int btrfs_destroy(struct lxc_storage *orig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/btrfs.c:914,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/btrfs.c:918,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:920,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/btrfs.c:924,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:926,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/btrfs.c:930,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:932,1
    - Dst: btrfs_subvolume_create
      Src: /src/lxc/src/lxc/storage/btrfs.c:936,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/btrfs.c:938,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 941
    functionName: btrfs_create
    functionSourceFile: /src/lxc/src/lxc/storage/btrfs.c
    functionUses: 0
    functionsReached:
    - btrfs_subvolume_create
    - strlen
    - SYSERROR
    - snprintf
    - strdup
    - ERROR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int btrfs_create(struct lxc_storage *bdev, const char *dest, const
      char *n,\n\t\t struct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/lxc/src/lxc/storage/lvm.c:44,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: lvm_destroy_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - execlp
    - setenv
    linkageType: ''
    returnType: int
    signature: int lvm_destroy_exec_wrapper(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/lxc/src/lxc/storage/lvm.c:54,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:57,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:60,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:64,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: lvm_create_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - execlp
    - setenv
    linkageType: ''
    returnType: int
    signature: int lvm_create_exec_wrapper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/lxc/src/lxc/storage/lvm.c:77,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:79,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: lvm_snapshot_exec_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - execlp
    - setenv
    linkageType: ''
    returnType: int
    signature: int lvm_snapshot_exec_wrapper(void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/lvm.c:105,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/storage/lvm.c:107,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/lvm.c:109,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/storage/lvm.c:111,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/lvm.c:113,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/storage/lvm.c:115,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:118,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/lvm.c:120,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/storage/lvm.c:122,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:124,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:127,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:127,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/lvm.c:128,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/lvm.c:130,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/storage/lvm.c:132,1
    - Dst: lvm_is_thin_pool
      Src: /src/lxc/src/lxc/storage/lvm.c:134,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:135,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/storage/lvm.c:137,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:139,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:142,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:151,1
    - Dst: run_command_status
      Src: /src/lxc/src/lxc/storage/lvm.c:152,1
    - Dst: WIFEXITED
      Src: /src/lxc/src/lxc/storage/lvm.c:158,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/storage/lvm.c:158,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/lvm.c:160,1
    - Dst: log_error
      Src: /src/lxc/src/lxc/storage/lvm.c:165,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:166,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 3
    argNames:
    - path
    - size
    - thinpool
    argTypes:
    - char*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 169
    functionName: do_lvm_create
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - run_command_status
    - lvm_is_thin_pool
    - WIFEXITED
    - run_command
    - strrchr
    - log_error
    - strlen
    - snprintf
    - TRACE
    - WEXITSTATUS
    - strdup
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int do_lvm_create(const char *path, uint64_t size, const char *thinpool)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/lvm.c:181,1
    - Dst: stat
      Src: /src/lxc/src/lxc/storage/lvm.c:184,1
    - Dst: S_ISBLK
      Src: /src/lxc/src/lxc/storage/lvm.c:188,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/lvm.c:191,1
    - Dst: major
      Src: /src/lxc/src/lxc/storage/lvm.c:192,1
    - Dst: minor
      Src: /src/lxc/src/lxc/storage/lvm.c:192,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:194,1
    - Dst: open
      Src: /src/lxc/src/lxc/storage/lvm.c:198,1
    - Dst: read
      Src: /src/lxc/src/lxc/storage/lvm.c:202,1
    - Dst: close
      Src: /src/lxc/src/lxc/storage/lvm.c:203,1
    - Dst: strncmp
      Src: /src/lxc/src/lxc/storage/lvm.c:207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 211
    functionName: lvm_detect
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - stat
    - major
    - strncmp
    - close
    - snprintf
    - minor
    - S_ISBLK
    - read
    - ERROR
    - open
    linkageType: ''
    returnType: bool
    signature: bool lvm_detect(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:217,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/lvm.c:223,1
    - Dst: mount_unknown_fs
      Src: /src/lxc/src/lxc/storage/lvm.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 229
    functionName: lvm_mount
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - lxc_storage_get_path
    - strcmp
    - mount_unknown_fs
    linkageType: ''
    returnType: int
    signature: int lvm_mount(struct lxc_storage *bdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:233,1
    - Dst: umount
      Src: /src/lxc/src/lxc/storage/lvm.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bdev
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: lvm_umount
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - strcmp
    - umount
    linkageType: ''
    returnType: int
    signature: int lvm_umount(struct lxc_storage *bdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:252,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:252,1
    - Dst: must_realloc
      Src: /src/lxc/src/lxc/storage/lvm.c:253,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/lvm.c:255,1
    - Dst: lxc_popen
      Src: /src/lxc/src/lxc/storage/lvm.c:259,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:261,1
    - Dst: fgets
      Src: /src/lxc/src/lxc/storage/lvm.c:266,1
    - Dst: lxc_pclose
      Src: /src/lxc/src/lxc/storage/lvm.c:269,1
    - Dst: WEXITSTATUS
      Src: /src/lxc/src/lxc/storage/lvm.c:271,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:274,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - path
    - pos
    - expected
    argTypes:
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 282
    functionName: lvm_compare_lv_attr
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - SYSERROR
    - strlen
    - snprintf
    - WEXITSTATUS
    - fgets
    - lxc_pclose
    - lxc_popen
    - must_realloc
    linkageType: ''
    returnType: int
    signature: int lvm_compare_lv_attr(const char *path, int pos, const char expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lvm_compare_lv_attr
      Src: /src/lxc/src/lxc/storage/lvm.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: lvm_is_thin_volume
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 1
    functionsReached:
    - lvm_compare_lv_attr
    linkageType: ''
    returnType: int
    signature: int lvm_is_thin_volume(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lvm_compare_lv_attr
      Src: /src/lxc/src/lxc/storage/lvm.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: lvm_is_thin_pool
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 1
    functionsReached:
    - lvm_compare_lv_attr
    linkageType: ''
    returnType: int
    signature: int lvm_is_thin_pool(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:296,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fstype
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: fs_needs_new_uuid
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool fs_needs_new_uuid(const char *fstype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:303,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:304,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:306,1
    - Dst: execlp
      Src: /src/lxc/src/lxc/storage/lvm.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 310
    functionName: lvm_snapshot_create_new_uuid_wrapper
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - strcmp
    - execlp
    linkageType: ''
    returnType: int
    signature: int lvm_snapshot_create_new_uuid_wrapper(void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/lvm.c:324,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/lvm.c:326,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/lvm.c:328,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/lvm.c:330,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/lvm.c:332,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/lvm.c:334,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:338,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/lvm.c:344,1
    - Dst: lvm_is_thin_volume
      Src: /src/lxc/src/lxc/storage/lvm.c:345,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:354,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/lvm.c:356,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/lvm.c:359,1
    - Dst: detect_fs
      Src: /src/lxc/src/lxc/storage/lvm.c:362,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/lvm.c:363,1
    - Dst: fs_needs_new_uuid
      Src: /src/lxc/src/lxc/storage/lvm.c:365,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/lvm.c:373,1
    - Dst: log_error_errno
      Src: /src/lxc/src/lxc/storage/lvm.c:376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - orig
    - path
    - size
    argTypes:
    - struct lxc_storage*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 380
    functionName: lvm_snapshot
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - run_command
    - fs_needs_new_uuid
    - lvm_is_thin_volume
    - strrchr
    - snprintf
    - lxc_storage_get_path
    - TRACE
    - strdup
    - log_error_errno
    - detect_fs
    linkageType: ''
    returnType: int
    signature: int lvm_snapshot(struct lxc_storage *orig, const char *path, uint64_t
      size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:393,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:394,1
    - Dst: strcmp
      Src: /src/lxc/src/lxc/storage/lvm.c:399,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/lvm.c:400,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/storage/lvm.c:401,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/lvm.c:409,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/lvm.c:411,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:413,1
    - Dst: strrchr
      Src: /src/lxc/src/lxc/storage/lvm.c:417,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:419,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/lvm.c:420,1
    - Dst: lxc_string_join
      Src: /src/lxc/src/lxc/storage/lvm.c:426,1
    - Dst: free
      Src: /src/lxc/src/lxc/storage/lvm.c:431,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/lvm.c:433,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:434,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/lvm.c:439,1
    - Dst: mntopts::mntopts
      Src: /src/lxc/src/lxc/storage/lvm.c:440,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:441,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:446,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:446,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:446,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/lvm.c:447,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/lvm.c:448,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:449,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/lvm.c:453,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/lvm.c:453,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:455,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/lvm.c:459,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/lvm.c:459,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:461,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/lvm.c:461,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 9
    argNames:
    - orig
    - new
    - oldname
    - cname
    - oldpath
    - lxcpath
    - snap
    - newsize
    - conf
    argTypes:
    - struct lxc_storage*
    - struct lxc_storage*
    - char*
    - char*
    - char*
    - char*
    - int
    - uint64_t
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 466
    functionName: lvm_clonepaths
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - strcmp
    - dest::dest
    - free
    - strrchr
    - strlen
    - lxc_mkdir_p
    - snprintf
    - SYSERROR
    - lxc_storage_get_path
    - strdup
    - lxc_global_config_value
    - lxc_string_join
    - src::src
    - mntopts::mntopts
    - ERROR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int lvm_clonepaths(struct lxc_storage *orig, struct lxc_storage *new,\n\t\t
      \  const char *oldname, const char *cname, const char *oldpath,\n\t\t   const
      char *lxcpath, int snap, uint64_t newsize,\n\t\t   struct lxc_conf *conf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_blktype
      Src: /src/lxc/src/lxc/storage/lvm.c:480,1
    - Dst: blk_getsize
      Src: /src/lxc/src/lxc/storage/lvm.c:482,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:483,1
    - Dst: detect_fs
      Src: /src/lxc/src/lxc/storage/lvm.c:489,1
    - Dst: INFO
      Src: /src/lxc/src/lxc/storage/lvm.c:490,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/lvm.c:497,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/lvm.c:497,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/lvm.c:498,1
    - Dst: do_lvm_create
      Src: /src/lxc/src/lxc/storage/lvm.c:500,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:502,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/lvm.c:508,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:511,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/lvm.c:518,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:521,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/lvm.c:522,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:526,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/lvm.c:526,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - conf
    - orig
    - new
    - newsize
    argTypes:
    - struct lxc_conf*
    - struct lxc_storage*
    - struct lxc_storage*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 468
    functionDepth: 4
    functionLinenumber: 468
    functionLinenumberEnd: 528
    functionName: lvm_create_clone
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - blk_getsize
    - run_command
    - dest::dest
    - lxc_storage_get_path
    - INFO
    - TRACE
    - src::src
    - lxc_global_config_value
    - do_lvm_create
    - ERROR
    - is_blktype
    - detect_fs
    linkageType: ''
    returnType: bool
    signature: "bool lvm_create_clone(struct lxc_conf *conf, struct lxc_storage *orig,\n\t\t
      \     struct lxc_storage *new, uint64_t newsize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_blktype
      Src: /src/lxc/src/lxc/storage/lvm.c:537,1
    - Dst: blk_getsize
      Src: /src/lxc/src/lxc/storage/lvm.c:538,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:539,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/lvm.c:547,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/lvm.c:547,1
    - Dst: lvm_snapshot
      Src: /src/lxc/src/lxc/storage/lvm.c:549,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:551,1
    - Dst: src::src
      Src: /src/lxc/src/lxc/storage/lvm.c:552,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:556,1
    - Dst: dest::dest
      Src: /src/lxc/src/lxc/storage/lvm.c:556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - conf
    - orig
    - new
    - newsize
    argTypes:
    - struct lxc_conf*
    - struct lxc_storage*
    - struct lxc_storage*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 558
    functionName: lvm_create_snapshot
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - lvm_snapshot
    - blk_getsize
    - lxc_storage_get_path
    - TRACE
    - src::src
    - dest::dest
    - ERROR
    - is_blktype
    linkageType: ''
    returnType: bool
    signature: "bool lvm_create_snapshot(struct lxc_conf *conf, struct lxc_storage
      *orig,\n\t\t\t struct lxc_storage *new, uint64_t newsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/lvm.c:566,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/lvm.c:567,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:570,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - orig
    argTypes:
    - struct lxc_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 577
    functionName: lvm_destroy
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 0
    functionsReached:
    - lxc_storage_get_path
    - run_command
    - TRACE
    - ERROR
    linkageType: ''
    returnType: int
    signature: int lvm_destroy(struct lxc_storage *orig)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/lvm.c:593,1
    - Dst: lxc_global_config_value
      Src: /src/lxc/src/lxc/storage/lvm.c:597,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:603,1
    - Dst: strlen
      Src: /src/lxc/src/lxc/storage/lvm.c:603,1
    - Dst: malloc
      Src: /src/lxc/src/lxc/storage/lvm.c:604,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:606,1
    - Dst: snprintf
      Src: /src/lxc/src/lxc/storage/lvm.c:610,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:612,1
    - Dst: do_lvm_create
      Src: /src/lxc/src/lxc/storage/lvm.c:621,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:623,1
    - Dst: lxc_storage_get_path
      Src: /src/lxc/src/lxc/storage/lvm.c:633,1
    - Dst: run_command
      Src: /src/lxc/src/lxc/storage/lvm.c:634,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:637,1
    - Dst: strdup
      Src: /src/lxc/src/lxc/storage/lvm.c:642,1
    - Dst: ERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:644,1
    - Dst: lxc_mkdir_p
      Src: /src/lxc/src/lxc/storage/lvm.c:648,1
    - Dst: SYSERROR
      Src: /src/lxc/src/lxc/storage/lvm.c:650,1
    - Dst: TRACE
      Src: /src/lxc/src/lxc/storage/lvm.c:654,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - bdev
    - dest
    - n
    - specs
    - conf
    argTypes:
    - struct lxc_storage*
    - char*
    - char*
    - struct bdev_specs*
    - struct lxc_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 579
    functionDepth: 4
    functionLinenumber: 579
    functionLinenumberEnd: 656
    functionName: lvm_create
    functionSourceFile: /src/lxc/src/lxc/storage/lvm.c
    functionUses: 2
    functionsReached:
    - run_command
    - strlen
    - lxc_mkdir_p
    - snprintf
    - SYSERROR
    - lxc_storage_get_path
    - strdup
    - TRACE
    - lxc_global_config_value
    - do_lvm_create
    - ERROR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int lvm_create(struct lxc_storage *bdev, const char *dest, const char
      *n,\n\t       struct bdev_specs *specs, const struct lxc_conf *conf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/lxc/src/include/strlcpy.c:12,1
    - Dst: memcpy
      Src: /src/lxc/src/include/strlcpy.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 21
    functionName: strlcpy
    functionSourceFile: /src/lxc/src/include/strlcpy.c
    functionUses: 36
    functionsReached:
    - strlen
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t strlcpy(char *dest, const char *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: BPF_CLASS
    functionSourceFile: /src/lxc/src/include/bpf_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_CLASS(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: BPF_SIZE
    functionSourceFile: /src/lxc/src/include/bpf_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_SIZE(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: BPF_MODE
    functionSourceFile: /src/lxc/src/include/bpf_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_MODE(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BPF_OP
    functionSourceFile: /src/lxc/src/include/bpf_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_OP(code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: BPF_SRC
    functionSourceFile: /src/lxc/src/include/bpf_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_SRC(code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: execveat
      Src: /src/lxc/src/include/fexecve.c:30,1
    - Dst: snprintf
      Src: /src/lxc/src/include/fexecve.c:34,1
    - Dst: execve
      Src: /src/lxc/src/include/fexecve.c:40,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - argv
    - envp
    argTypes:
    - int
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: fexecve
    functionSourceFile: /src/lxc/src/include/fexecve.c
    functionUses: 1
    functionsReached:
    - execve
    - execveat
    - snprintf
    linkageType: ''
    returnType: int
    signature: int fexecve(int fd, char *const argv[], char *const envp[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3993
      start: 3828
    functionDepth: 0
    functionLinenumber: 3828
    functionLinenumberEnd: 3993
    functionName: __BPF_FUNC_MAPPER
    functionSourceFile: /src/lxc/src/include/bpf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __BPF_FUNC_MAPPER(FN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3998
      start: 3997
    functionDepth: 0
    functionLinenumber: 3997
    functionLinenumberEnd: 3998
    functionName: __BPF_ENUM_FN
    functionSourceFile: /src/lxc/src/include/bpf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __BPF_ENUM_FN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4095
      start: 4092
    functionDepth: 0
    functionLinenumber: 4092
    functionLinenumberEnd: 4095
    functionName: BPF_F_ADJ_ROOM_ENCAP_L2
    functionSourceFile: /src/lxc/src/include/bpf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_F_ADJ_ROOM_ENCAP_L2(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4168
    functionDepth: 0
    functionLinenumber: 4168
    functionLinenumberEnd: 4173
    functionName: __bpf_md_ptr
    functionSourceFile: /src/lxc/src/include/bpf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __bpf_md_ptr(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line_col
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5066
      start: 5065
    functionDepth: 0
    functionLinenumber: 5065
    functionLinenumberEnd: 5066
    functionName: BPF_LINE_INFO_LINE_NUM
    functionSourceFile: /src/lxc/src/include/bpf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_LINE_INFO_LINE_NUM(line_col)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line_col
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5067
      start: 5066
    functionDepth: 0
    functionLinenumber: 5066
    functionLinenumberEnd: 5067
    functionName: BPF_LINE_INFO_LINE_COL
    functionSourceFile: /src/lxc/src/include/bpf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BPF_LINE_INFO_LINE_COL(line_col)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/lxc/src/include/strlcat.c:20,1
    - Dst: strlen
      Src: /src/lxc/src/include/strlcat.c:22,1
    - Dst: strlcpy
      Src: /src/lxc/src/include/strlcat.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - src
    - append
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: strlcat
    functionSourceFile: /src/lxc/src/include/strlcat.c
    functionUses: 8
    functionsReached:
    - strlcpy
    - strnlen
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strlcat(char *src, const char *append, size_t len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/lxc/src/include/strchrnul.c:53,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 38
    argCount: 2
    argNames:
    - s
    - c_in
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 139
    functionName: strchrnul
    functionSourceFile: /src/lxc/src/include/strchrnul.c
    functionUses: 2
    functionsReached:
    - abort
    linkageType: ''
    returnType: char
    signature: char *strchrnul(const char *s, int c_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: NETNS_RTA
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NETNS_RTA(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: __NETLINK_ALIGN
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __NETLINK_ALIGN(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nlh
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: __NLMSG_OK
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __NLMSG_OK(nlh, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nlh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: __NLMSG_NEXT
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __NLMSG_NEXT(nlh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nlh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __NLMSG_DATA
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __NLMSG_DATA(nlh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nlh
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __NLMSG_DATAEND
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __NLMSG_DATAEND(nlh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nlh
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: __NLMSG_RTA
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __NLMSG_RTA(nlh, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rta
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: __RTA_DATALEN
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RTA_DATALEN(rta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rta
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: __RTA_NEXT
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RTA_NEXT(rta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nlh
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: __RTA_OK
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RTA_OK(nlh, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rta
    - ','
    - nlh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: __NLMSG_RTAOK
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __NLMSG_RTAOK(rta, nlh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: __IN6_IS_ADDR_LINKLOCAL
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __IN6_IS_ADDR_LINKLOCAL(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: __IN6_IS_ADDR_MC_LINKLOCAL
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __IN6_IS_ADDR_MC_LINKLOCAL(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rta
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: __RTA_DATA
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RTA_DATA(rta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __IN6_IS_ADDR_LINKLOCAL
      Src: /src/lxc/src/include/netns_ifaddrs.c:115,1
    - Dst: __IN6_IS_ADDR_MC_LINKLOCAL
      Src: /src/lxc/src/include/netns_ifaddrs.c:116,1
    - Dst: memcpy
      Src: /src/lxc/src/include/netns_ifaddrs.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - r
    - af
    - sa
    - addr
    - addrlen
    - ifindex
    argTypes:
    - struct sockaddr**
    - int
    - union sockany*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: copy_addr
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - __IN6_IS_ADDR_MC_LINKLOCAL
    - memcpy
    - __IN6_IS_ADDR_LINKLOCAL
    linkageType: ''
    returnType: void
    signature: "void copy_addr(struct sockaddr **r, int af, union sockany *sa,\n\t\t
      \     void *addr, size_t addrlen, int ifindex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/include/netns_ifaddrs.c:144,1
    - Dst: copy_addr
      Src: /src/lxc/src/include/netns_ifaddrs.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - r
    - af
    - sa
    - prefixlen
    argTypes:
    - struct sockaddr**
    - int
    - union sockany*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 150
    functionName: gen_netmask
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - memset
    - copy_addr
    linkageType: ''
    returnType: void
    signature: "void gen_netmask(struct sockaddr **r, int af, union sockany *sa,\n\t\t\tint
      prefixlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/lxc/src/include/netns_ifaddrs.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - r
    - sa
    - addr
    - addrlen
    - ifindex
    - hatype
    argTypes:
    - struct sockaddr**
    - union sockany*
    - void*
    - size_t
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: copy_lladdr
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void copy_lladdr(struct sockaddr **r, union sockany *sa, void *addr,\n\t\t\tsize_t
      addrlen, int ifindex, unsigned short hatype)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: __NLMSG_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:173,1
    - Dst: __NLMSG_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:174,1
    - Dst: __NLMSG_RTA
      Src: /src/lxc/src/include/netns_ifaddrs.c:180,1
    - Dst: __NLMSG_RTAOK
      Src: /src/lxc/src/include/netns_ifaddrs.c:180,1
    - Dst: __RTA_NEXT
      Src: /src/lxc/src/include/netns_ifaddrs.c:181,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:189,1
    - Dst: calloc
      Src: /src/lxc/src/include/netns_ifaddrs.c:202,1
    - Dst: __NLMSG_RTA
      Src: /src/lxc/src/include/netns_ifaddrs.c:215,1
    - Dst: __NLMSG_RTAOK
      Src: /src/lxc/src/include/netns_ifaddrs.c:215,1
    - Dst: __RTA_NEXT
      Src: /src/lxc/src/include/netns_ifaddrs.c:216,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:219,1
    - Dst: memcpy
      Src: /src/lxc/src/include/netns_ifaddrs.c:220,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:220,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:221,1
    - Dst: copy_lladdr
      Src: /src/lxc/src/include/netns_ifaddrs.c:226,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:227,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:227,1
    - Dst: copy_lladdr
      Src: /src/lxc/src/include/netns_ifaddrs.c:231,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:232,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:232,1
    - Dst: memcpy
      Src: /src/lxc/src/include/netns_ifaddrs.c:242,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:242,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:243,1
    - Dst: memcpy
      Src: /src/lxc/src/include/netns_ifaddrs.c:246,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:246,1
    - Dst: __NLMSG_RTA
      Src: /src/lxc/src/include/netns_ifaddrs.c:266,1
    - Dst: __NLMSG_RTAOK
      Src: /src/lxc/src/include/netns_ifaddrs.c:266,1
    - Dst: __RTA_NEXT
      Src: /src/lxc/src/include/netns_ifaddrs.c:267,1
    - Dst: copy_addr
      Src: /src/lxc/src/include/netns_ifaddrs.c:275,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:277,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:278,1
    - Dst: copy_addr
      Src: /src/lxc/src/include/netns_ifaddrs.c:281,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:283,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:284,1
    - Dst: copy_addr
      Src: /src/lxc/src/include/netns_ifaddrs.c:288,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:290,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:290,1
    - Dst: memset
      Src: /src/lxc/src/include/netns_ifaddrs.c:302,1
    - Dst: copy_addr
      Src: /src/lxc/src/include/netns_ifaddrs.c:305,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:306,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:307,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:310,1
    - Dst: memcpy
      Src: /src/lxc/src/include/netns_ifaddrs.c:311,1
    - Dst: __RTA_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:311,1
    - Dst: __RTA_DATALEN
      Src: /src/lxc/src/include/netns_ifaddrs.c:312,1
    - Dst: gen_netmask
      Src: /src/lxc/src/include/netns_ifaddrs.c:323,1
    - Dst: free
      Src: /src/lxc/src/include/netns_ifaddrs.c:339,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 107
    argCount: 3
    argNames:
    - pctx
    - netnsid_aware
    - h
    argTypes:
    - void*
    - bool*
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 343
    functionName: nl_msg_to_ifaddr
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - __NLMSG_RTA
    - memset
    - __NLMSG_DATA
    - __RTA_NEXT
    - memcpy
    - copy_lladdr
    - free
    - __RTA_DATA
    - __RTA_DATALEN
    - calloc
    - gen_netmask
    - __NLMSG_RTAOK
    - copy_addr
    linkageType: ''
    returnType: int
    signature: int nl_msg_to_ifaddr(void *pctx, bool *netnsid_aware, struct nlmsghdr
      *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/include/netns_ifaddrs.c:360,1
    - Dst: sendmsg
      Src: /src/lxc/src/include/netns_ifaddrs.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - nlmsghdr
    argTypes:
    - int
    - struct nlmsghdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 370
    functionName: __ifaddrs_netlink_send
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - memset
    - sendmsg
    linkageType: ''
    returnType: int
    signature: int __ifaddrs_netlink_send(int fd, struct nlmsghdr *nlmsghdr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __NETLINK_ALIGN
      Src: /src/lxc/src/include/netns_ifaddrs.c:391,1
    - Dst: __NETLINK_ALIGN
      Src: /src/lxc/src/include/netns_ifaddrs.c:392,1
    - Dst: __NETLINK_ALIGN
      Src: /src/lxc/src/include/netns_ifaddrs.c:393,1
    - Dst: __NETLINK_ALIGN
      Src: /src/lxc/src/include/netns_ifaddrs.c:394,1
    - Dst: __NETLINK_ALIGN
      Src: /src/lxc/src/include/netns_ifaddrs.c:395,1
    - Dst: __NETLINK_ALIGN
      Src: /src/lxc/src/include/netns_ifaddrs.c:396,1
    - Dst: NLMSG_LENGTH
      Src: /src/lxc/src/include/netns_ifaddrs.c:403,1
    - Dst: __NLMSG_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:405,1
    - Dst: NLMSG_LENGTH
      Src: /src/lxc/src/include/netns_ifaddrs.c:412,1
    - Dst: __NLMSG_DATA
      Src: /src/lxc/src/include/netns_ifaddrs.c:414,1
    - Dst: addattr
      Src: /src/lxc/src/include/netns_ifaddrs.c:430,1
    - Dst: __ifaddrs_netlink_send
      Src: /src/lxc/src/include/netns_ifaddrs.c:432,1
    - Dst: recv
      Src: /src/lxc/src/include/netns_ifaddrs.c:437,1
    - Dst: __NLMSG_OK
      Src: /src/lxc/src/include/netns_ifaddrs.c:443,1
    - Dst: __NLMSG_NEXT
      Src: /src/lxc/src/include/netns_ifaddrs.c:444,1
    - Dst: cb
      Src: /src/lxc/src/include/netns_ifaddrs.c:453,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 7
    argNames:
    - fd
    - seq
    - type
    - af
    - netns_id
    - netnsid_aware
    - ctx
    argTypes:
    - int
    - unsigned int
    - int
    - int
    - __s32
    - bool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 459
    functionName: __ifaddrs_netlink_recv
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - cb
    - __NLMSG_DATA
    - __NETLINK_ALIGN
    - recv
    - __NLMSG_OK
    - __ifaddrs_netlink_send
    - NLMSG_LENGTH
    - addattr
    - __NLMSG_NEXT
    linkageType: ''
    returnType: int
    signature: "int __ifaddrs_netlink_recv(int fd, unsigned int seq, int type, int
      af,\n\t\t\t\t  __s32 netns_id, bool *netnsid_aware,\n\t\t\t\t  int (*cb)(void
      *ctx, bool *netnsid_aware,\n\t\t\t\t\t    struct nlmsghdr *h),\n\t\t\t\t  void
      *ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/lxc/src/include/netns_ifaddrs.c:469,1
    - Dst: setsockopt
      Src: /src/lxc/src/include/netns_ifaddrs.c:473,1
    - Dst: close
      Src: /src/lxc/src/include/netns_ifaddrs.c:476,1
    - Dst: __ifaddrs_netlink_recv
      Src: /src/lxc/src/include/netns_ifaddrs.c:481,1
    - Dst: __ifaddrs_netlink_recv
      Src: /src/lxc/src/include/netns_ifaddrs.c:484,1
    - Dst: close
      Src: /src/lxc/src/include/netns_ifaddrs.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - link_af
    - addr_af
    - netns_id
    - netnsid_aware
    - ctx
    argTypes:
    - int
    - int
    - __s32
    - bool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 497
    functionName: __rtnl_enumerate
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - __ifaddrs_netlink_recv
    - socket
    - setsockopt
    - close
    linkageType: ''
    returnType: int
    signature: "int __rtnl_enumerate(int link_af, int addr_af, __s32 netns_id,\n\t\t\t
      \   bool *netnsid_aware,\n\t\t\t    int (*cb)(void *ctx, bool *netnsid_aware,
      struct nlmsghdr *h),\n\t\t\t    void *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/lxc/src/include/netns_ifaddrs.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ifp
    argTypes:
    - struct netns_ifaddrs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 508
    functionName: netns_freeifaddrs
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void netns_freeifaddrs(struct netns_ifaddrs *ifp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/lxc/src/include/netns_ifaddrs.c:517,1
    - Dst: __rtnl_enumerate
      Src: /src/lxc/src/include/netns_ifaddrs.c:519,1
    - Dst: netns_freeifaddrs
      Src: /src/lxc/src/include/netns_ifaddrs.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ifap
    - netns_id
    - netnsid_aware
    argTypes:
    - struct netns_ifaddrs**
    - __s32
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 529
    functionName: netns_getifaddrs
    functionSourceFile: /src/lxc/src/include/netns_ifaddrs.c
    functionUses: 4
    functionsReached:
    - memset
    - __rtnl_enumerate
    - netns_freeifaddrs
    linkageType: ''
    returnType: int
    signature: "int netns_getifaddrs(struct netns_ifaddrs **ifap, __s32 netns_id,\n\t\t
      \    bool *netnsid_aware)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: FIX
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIX(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: atou
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned atou(char **s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setcancelstate
      Src: /src/lxc/src/include/getgrgid_r.c:78,1
    - Dst: getline
      Src: /src/lxc/src/include/getgrgid_r.c:82,1
    - Dst: ferror
      Src: /src/lxc/src/include/getgrgid_r.c:83,1
    - Dst: free
      Src: /src/lxc/src/include/getgrgid_r.c:84,1
    - Dst: strchr
      Src: /src/lxc/src/include/getgrgid_r.c:93,1
    - Dst: strchr
      Src: /src/lxc/src/include/getgrgid_r.c:98,1
    - Dst: atou
      Src: /src/lxc/src/include/getgrgid_r.c:102,1
    - Dst: free
      Src: /src/lxc/src/include/getgrgid_r.c:114,1
    - Dst: calloc
      Src: /src/lxc/src/include/getgrgid_r.c:115,1
    - Dst: free
      Src: /src/lxc/src/include/getgrgid_r.c:118,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 7
    argNames:
    - f
    - gr
    - line
    - size
    - mem
    - nmem
    - res
    argTypes:
    - FILE*
    - struct group*
    - char**
    - size_t*
    - char***
    - size_t*
    - struct group**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 143
    functionName: __getgrent_a
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 0
    functionsReached:
    - pthread_setcancelstate
    - free
    - strchr
    - calloc
    - atou
    - getline
    - ferror
    linkageType: ''
    returnType: int
    signature: "int __getgrent_a(FILE *f, struct group *gr, char **line, size_t *size,\n\t\t\tchar
      ***mem, size_t *nmem, struct group **res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - x
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: itoa
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *itoa(char *p, uint32_t x)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/lxc/src/include/getgrgid_r.c:169,1
    - Dst: strlen
      Src: /src/lxc/src/include/getgrgid_r.c:172,1
    - Dst: memset
      Src: /src/lxc/src/include/getgrgid_r.c:178,1
    - Dst: socket
      Src: /src/lxc/src/include/getgrgid_r.c:181,1
    - Dst: fdopen
      Src: /src/lxc/src/include/getgrgid_r.c:185,1
    - Dst: close
      Src: /src/lxc/src/include/getgrgid_r.c:186,1
    - Dst: connect
      Src: /src/lxc/src/include/getgrgid_r.c:193,1
    - Dst: sendmsg
      Src: /src/lxc/src/include/getgrgid_r.c:205,1
    - Dst: fread
      Src: /src/lxc/src/include/getgrgid_r.c:208,1
    - Dst: ferror
      Src: /src/lxc/src/include/getgrgid_r.c:214,1
    - Dst: fclose
      Src: /src/lxc/src/include/getgrgid_r.c:217,1
    - Dst: bswap_32
      Src: /src/lxc/src/include/getgrgid_r.c:220,1
    - Dst: bswap_32
      Src: /src/lxc/src/include/getgrgid_r.c:232,1
    - Dst: fclose
      Src: /src/lxc/src/include/getgrgid_r.c:247,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 5
    argNames:
    - req
    - key
    - buf
    - len
    - swap
    argTypes:
    - int32_t
    - char*
    - int32_t*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 249
    functionName: __nscd_query
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 0
    functionsReached:
    - memset
    - socket
    - connect
    - sendmsg
    - close
    - fclose
    - strlen
    - fread
    - strnlen
    - bswap_32
    - fdopen
    - ferror
    linkageType: ''
    returnType: FILE
    signature: "FILE *__nscd_query(int32_t req, const char *key, int32_t *buf,\n\t\t\t
      \ size_t len, int *swap)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setcancelstate
      Src: /src/lxc/src/include/getgrgid_r.c:259,1
    - Dst: fopen
      Src: /src/lxc/src/include/getgrgid_r.c:264,1
    - Dst: __getgrent_a
      Src: /src/lxc/src/include/getgrgid_r.c:270,1
    - Dst: strcmp
      Src: /src/lxc/src/include/getgrgid_r.c:271,1
    - Dst: fclose
      Src: /src/lxc/src/include/getgrgid_r.c:276,1
    - Dst: itoa
      Src: /src/lxc/src/include/getgrgid_r.c:296,1
    - Dst: __nscd_query
      Src: /src/lxc/src/include/getgrgid_r.c:299,1
    - Dst: fread
      Src: /src/lxc/src/include/getgrgid_r.c:324,1
    - Dst: ferror
      Src: /src/lxc/src/include/getgrgid_r.c:325,1
    - Dst: bswap_32
      Src: /src/lxc/src/include/getgrgid_r.c:329,1
    - Dst: realloc
      Src: /src/lxc/src/include/getgrgid_r.c:341,1
    - Dst: fread
      Src: /src/lxc/src/include/getgrgid_r.c:350,1
    - Dst: ferror
      Src: /src/lxc/src/include/getgrgid_r.c:351,1
    - Dst: realloc
      Src: /src/lxc/src/include/getgrgid_r.c:361,1
    - Dst: strcmp
      Src: /src/lxc/src/include/getgrgid_r.c:399,1
    - Dst: fclose
      Src: /src/lxc/src/include/getgrgid_r.c:408,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 133
    argCount: 8
    argNames:
    - name
    - gid
    - gr
    - buf
    - size
    - mem
    - nmem
    - res
    argTypes:
    - char*
    - gid_t
    - struct group*
    - char**
    - size_t*
    - char***
    - size_t*
    - struct group**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 421
    functionName: __getgr_a
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 0
    functionsReached:
    - strcmp
    - bswap_32
    - fclose
    - pthread_setcancelstate
    - itoa
    - fread
    - realloc
    - __nscd_query
    - __getgrent_a
    - fopen
    - ferror
    linkageType: ''
    returnType: int
    signature: "int __getgr_a(const char *name, gid_t gid, struct group *gr, char
      **buf,\n\t\t     size_t *size, char ***mem, size_t *nmem, struct group **res)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setcancelstate
      Src: /src/lxc/src/include/getgrgid_r.c:436,1
    - Dst: __getgr_a
      Src: /src/lxc/src/include/getgrgid_r.c:439,1
    - Dst: memcpy
      Src: /src/lxc/src/include/getgrgid_r.c:448,1
    - Dst: FIX
      Src: /src/lxc/src/include/getgrgid_r.c:449,1
    - Dst: FIX
      Src: /src/lxc/src/include/getgrgid_r.c:450,1
    - Dst: free
      Src: /src/lxc/src/include/getgrgid_r.c:455,1
    - Dst: free
      Src: /src/lxc/src/include/getgrgid_r.c:456,1
    - Dst: pthread_setcancelstate
      Src: /src/lxc/src/include/getgrgid_r.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - name
    - gid
    - gr
    - buf
    - size
    - res
    argTypes:
    - char*
    - gid_t
    - struct group*
    - char*
    - size_t
    - struct group**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 465
    functionName: getgr_r
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 0
    functionsReached:
    - memcpy
    - pthread_setcancelstate
    - free
    - __getgr_a
    - FIX
    linkageType: ''
    returnType: int
    signature: "int getgr_r(const char *name, gid_t gid, struct group *gr, char *buf,\n\t\t
      \  size_t size, struct group **res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getgr_r
      Src: /src/lxc/src/include/getgrgid_r.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - gid
    - gr
    - buf
    - size
    - res
    argTypes:
    - gid_t
    - struct group*
    - char*
    - size_t
    - struct group**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: getgrgid_r
    functionSourceFile: /src/lxc/src/include/getgrgid_r.c
    functionUses: 2
    functionsReached:
    - getgr_r
    linkageType: ''
    returnType: int
    signature: int getgrgid_r(gid_t gid, struct group *gr, char *buf, size_t size,
      struct group **res)
Fuzzer filename: /src/lxc/src/tests/fuzz-lxc-config-read.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- memory_utils.h
- terminal.h
- dirent.h
- compiler.h
- sys/uio.h
- strlcpy.h
- ctype.h
- overlay.h
- net/if.h
- storage/storage.h
- stdio.h
- assert.h
- sys/syscall.h
- errno.h
- lxc.h
- caps.h
- unistd.h
- byteswap.h
- sys/vfs.h
- stdlib.h
- confile.h
- regex.h
- lsm.h
- attach_options.h
- linux/types.h
- selinux/selinux.h
- sync.h
- linux/netlink.h
- linux/magic.h
- syscall_numbers.h
- netinet/in.h
- sys/stat.h
- dlog.h
- linux/seccomp.h
- sys/pidfd.h
- alloca.h
- net/if_arp.h
- sys/eventfd.h
- linux/loop.h
- storage.h
- mainloop.h
- monitor.h
- linux/if_packet.h
- semaphore.h
- sys/prctl.h
- lvm.h
- lxc/lxccontainer.h
- arpa/inet.h
- sys/time.h
- storage/btrfs.h
- syslog.h
- criu.h
- arguments.h
- config.h
- linux/memfd.h
- api_extensions.h
- sys/resource.h
- bpf.h
- idmap_utils.h
- sys/un.h
- signal.h
- net/ethernet.h
- poll.h
- sys/sendfile.h
- linux/ioctl.h
- sys/signalfd.h
- lxctest.h
- sys/capability.h
- asm/types.h
- commands_utils.h
- sys/sysmacros.h
- sys/inotify.h
- sys/param.h
- rexec.h
- rtnl.h
- strings.h
- features.h
- utils.h
- cgroups/cgroup.h
- nbd.h
- mntent.h
- string.h
- stddef.h
- stdarg.h
- sys/epoll.h
- rbd.h
- include/getsubopt.h
- error.h
- namespace.h
- linux/unistd.h
- cgroups/cgroup_utils.h
- linux/rtnetlink.h
- sys/mkdev.h
- grp.h
- parse.h
- linux/if_link.h
- cgroup2_devices.h
- process_utils.h
- sys/personality.h
- start.h
- sys/statvfs.h
- termios.h
- execinfo.h
- sys/types.h
- sys/socket.h
- pty.h
- state.h
- sys/select.h
- zfs.h
- ../lxc/lxc.h
- conf.h
- lxc/attach_options.h
- storage/overlay.h
- linux/kdev_t.h
- sys/wait.h
- linux/if.h
- syscall_wrappers.h
- linux/landlock.h
- linux/reboot.h
- lxclock.h
- security/pam_modules.h
- ../lxc/compiler.h
- limits.h
- inttypes.h
- linux/sockios.h
- sys/file.h
- asm/unistd.h
- dbus/dbus.h
- stdint.h
- sys/ioctl.h
- sys/reboot.h
- error_utils.h
- linux/if_addr.h
- storage_utils.h
- openssl/evp.h
- attach.h
- network.h
- loop.h
- commands.h
- dir.h
- log.h
- sys/utsname.h
- time.h
- setjmp.h
- include/strlcpy.h
- cgroups/cgroup2_devices.h
- sys/mount.h
- pthread.h
- netns_ifaddrs.h
- uuid.h
- fcntl.h
- pwd.h
- storage/storage_utils.h
- bpf_common.h
- af_unix.h
- ../lxc/memory_utils.h
- version.h
- security/_pam_macros.h
- strlcat.h
- string_utils.h
- linux/keyctl.h
- confile_utils.h
- lxcseccomp.h
- strchrnul.h
- open_utils.h
- initutils.h
- macro.h
- cgroup_utils.h
- stdbool.h
- lsm/lsm.h
- nl.h
- rsync.h
- malloc.h
- seccomp.h
- getopt.h
- ringbuf.h
- linux/limits.h
- sched.h
- lxccontainer.h
- libgen.h
- sys/mman.h
- liburing.h
- mount_utils.h
- list.h
- hlist.h
- cgroup.h
- btrfs.h
- file_utils.h
report: name
sources:
- function_names:
  - setns
  - mount_free
  - mount_cmp_dst
  - mount_should_error
  - read_mounts
  - main
  source_file: /src/lxc/hooks/unmount-namespace.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_PATH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/hooks/unmount-namespace.c
      type_or_value: '010000000'
    structs:
    - fields:
      - name: '*src'
        type: char
      - name: '*dst'
        type: char
      - name: '*fs'
        type: char
      item_type: struct
      name: mount
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/lxc/hooks/unmount-namespace.c
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/lxc/src/tests/fuzz-lxc-config-read.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/console_log.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_debug_stream
  - lxc_error
  - lxc_debug
  - lxc_test_assert_stringify
  - lxc_test_assert_abort
  - test_error_ret
  source_file: /src/lxc/src/tests/lxctest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - destroy_container
  - create_container
  - main
  source_file: /src/lxc/src/tests/shortlived.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/tests/shortlived.c
      type_or_value: '"shortlived"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/lxc/src/tests/fuzz-lxc-cgroup-init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - has_mount_properties
  - rootfs_options
  - main
  source_file: /src/lxc/src/tests/rootfs_options.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - try_to_remove
  - main
  source_file: /src/lxc/src/tests/snapshot.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/tests/snapshot.c
      type_or_value: '"snapxxx1"'
    - item_type: preproc_def
      name: MYNAME2
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/snapshot.c
      type_or_value: '"snapxxx3"'
    - item_type: preproc_def
      name: RESTNAME
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/tests/snapshot.c
      type_or_value: '"snapxxx2"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSTERR
  - main
  source_file: /src/lxc/src/tests/lxcpath.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/tests/lxcpath.c
      type_or_value: '"lxctest1"'
    - item_type: preproc_def
      name: CPATH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/lxc/src/tests/lxcpath.c
      type_or_value: '"/boo"'
    - item_type: preproc_def
      name: FPATH
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/lxc/src/tests/lxcpath.c
      type_or_value: '"/boo/lxctest1/config"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/device_add_remove.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NAME
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/tests/device_add_remove.c
      type_or_value: '"device_add_remove_test"'
    - item_type: preproc_def
      name: DEVICE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/tests/device_add_remove.c
      type_or_value: '"/dev/loop-control"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_list_func
  - main
  source_file: /src/lxc/src/tests/list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/criu_check_feature.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_oom_score_adj
  - main
  source_file: /src/lxc/src/tests/proc_pid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONTAINER_NAME
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/lxc/src/tests/proc_pid.c
      type_or_value: '"test-proc-pid"'
    - item_type: preproc_def
      name: PROC_INIT_PATH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/lxc/src/tests/proc_pid.c
      type_or_value: '"/proc/1/oom_score_adj"'
    - item_type: preproc_def
      name: PROC_SELF_PATH
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/lxc/src/tests/proc_pid.c
      type_or_value: '"/proc/self/oom_score_adj"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_get_compare_clear_save_load
  - set_and_clear_complete_netdev
  - set_invalid_netdev
  - test_idmap_parser
  - set_get_compare_clear_save_load_network
  source_file: /src/lxc/src/tests/parse_config_file.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: is_valid
        type: bool
      - name: '*idmap'
        type: char
      item_type: struct
      name: idmap_check
      pos:
        line_end: 207
        line_start: 204
        source_file: /src/lxc/src/tests/parse_config_file.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/basic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/clonetest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/clonetest.c
      type_or_value: '"clonetest1"'
    - item_type: preproc_def
      name: MYNAME2
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/tests/clonetest.c
      type_or_value: '"clonetest2"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/createtest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/createtest.c
      type_or_value: '"lxctest1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_sysctls
  - main
  source_file: /src/lxc/src/tests/sysctls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONTAINER_NAME
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/lxc/src/tests/sysctls.c
      type_or_value: '"test-proc-sys"'
    - item_type: preproc_def
      name: SYSCTL_PATH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/lxc/src/tests/sysctls.c
      type_or_value: '"/proc/sys/net/ipv4/ip_forward"'
    - item_type: preproc_def
      name: SYSCTL_CONFIG_KEY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/lxc/src/tests/sysctls.c
      type_or_value: '"lxc.sysctl.net.ipv4.ip_forward"'
    - item_type: preproc_def
      name: SYSCTL_CONFIG_VALUE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/tests/sysctls.c
      type_or_value: '"1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_valid_architectures
  - main
  source_file: /src/lxc/src/tests/arch_parse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - destroy_container
  - create_container
  - main
  source_file: /src/lxc/src/tests/cve-2019-5736.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/tests/cve-2019-5736.c
      type_or_value: '"shortlived"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_file
  - try_to_remove
  - test_attach_write_file
  - do_test_file_open
  - test_aa_policy
  - main
  source_file: /src/lxc/src/tests/aa.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/tests/aa.c
      type_or_value: '"test-aa"'
    - item_type: preproc_def
      name: MYNAME2
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/tests/aa.c
      type_or_value: '"test-aa-o1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/get_item.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"lxctest1"'
    - item_type: preproc_def
      name: HNAME
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"hostname1"'
    - item_type: preproc_def
      name: LIMIT_STACK
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"lxc.prlimit.stack = unlimited\n"'
    - item_type: preproc_def
      name: ALL_LIMITS
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"lxc.prlimit.nofile = 1234:unlimited\n" LIMIT_STACK'
    - item_type: preproc_def
      name: SYSCTL_SOMAXCONN
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"lxc.sysctl.net.core.somaxconn = 256\n"'
    - item_type: preproc_def
      name: ALL_SYSCTLS
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"lxc.sysctl.net.ipv4.ip_forward = 1\n" SYSCTL_SOMAXCONN'
    - item_type: preproc_def
      name: PROC_OOM_SCORE_ADJ
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"lxc.proc.oom_score_adj = 10\n"'
    - item_type: preproc_def
      name: ALL_PROCS
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/lxc/src/tests/get_item.c
      type_or_value: '"lxc.proc.setgroups = allow\n" PROC_OOM_SCORE_ADJ'
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_reboot
  - test_reboot
  - have_reboot_patch
  - main
  source_file: /src/lxc/src/tests/reboot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSTERR
  - test_console_close_all
  - test_console_running_container
  - test_console
  - main
  source_file: /src/lxc/src/tests/console.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TTYCNT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/tests/console.c
      type_or_value: '4'
    - item_type: preproc_def
      name: TTYCNT_STR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/tests/console.c
      type_or_value: '"4"'
    - item_type: preproc_def
      name: TSTNAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/console.c
      type_or_value: '"lxcconsoletest"'
    - item_type: preproc_def
      name: MAXCONSOLES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/tests/console.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSTOUT
  - TSTERR
  - test_lsm_detect
  - test_attach_lsm_set_config
  - test_attach_lsm_func_func
  - test_attach_lsm_func
  - test_attach_lsm_cmd
  - test_attach_lsm_set_config
  - test_attach_lsm_func
  - test_attach_lsm_cmd
  - test_attach_func_func
  - test_attach_func
  - test_attach_cmd
  - test_ct_destroy
  - test_ct_create
  - test_attach
  - main
  source_file: /src/lxc/src/tests/attach.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSTNAME
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/tests/attach.c
      type_or_value: '"lxc-attach-test"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/lxc/src/tests/may_control.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/api_reboot.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSTNAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/tests/api_reboot.c
      type_or_value: '"lxc-api-reboot"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - capabilities_allow
  - capabilities_deny
  - run
  - capabilities_init
  - capabilities_exit
  - main
  - main
  source_file: /src/lxc/src/tests/capabilities.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ns_sharing_wrapper
  - main
  source_file: /src/lxc/src/tests/share_ns.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_DEFAULT_BUF_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/tests/share_ns.c
      type_or_value: '256'
    structs:
    - fields:
      - name: thread_id
        type: int
      - name: success
        type: bool
      - name: init_pid
        type: pid_t
      - name: inherited_ipc_ns[TEST_DEFAULT_BUF_SIZE]
        type: char
      - name: inherited_net_ns[TEST_DEFAULT_BUF_SIZE]
        type: char
      item_type: struct
      name: thread_args
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/lxc/src/tests/share_ns.c
    typedefs: []
    union: []
- function_names:
  - state_wrapper
  - main
  source_file: /src/lxc/src/tests/state_server.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: thread_id
        type: int
      - name: timeout
        type: int
      - name: success
        type: bool
      - name: '*c'
        type: struct lxc_container
      item_type: struct
      name: thread_args
      pos:
        line_end: 29
        line_start: 24
        source_file: /src/lxc/src/tests/state_server.c
    typedefs: []
    union: []
- function_names:
  - test_lxc_path_simplify
  - test_detect_ramfs_rootfs
  - test_lxc_safe_uint
  - test_lxc_safe_int
  - test_lxc_safe_long
  - test_lxc_string_replace
  - test_lxc_string_in_array
  - test_parse_byte_size_string
  - test_lxc_config_net_is_hwaddr
  - test_task_blocks_signal
  - test_is_in_comm
  - main
  source_file: /src/lxc/src/tests/lxc-test-utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __MNTNS_LEN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/lxc/src/tests/lxc-test-utils.c
      type_or_value: (5 + INTTYPE_TO_STRLEN(pid_t) + 7 + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - destroy_container
  - create_container
  - main
  source_file: /src/lxc/src/tests/startone.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/tests/startone.c
      type_or_value: '"lxctest1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_container
  - main
  source_file: /src/lxc/src/tests/saveconfig.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/saveconfig.c
      type_or_value: '"lxctest1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/config_jump_table.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_read_only
  - sys_mixed
  - main
  source_file: /src/lxc/src/tests/sys_mixed.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_two_locks
  - main
  source_file: /src/lxc/src/tests/locktests.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: mycontainername
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/tests/locktests.c
      type_or_value: '"lxctest.sem"'
    - item_type: preproc_def
      name: TIMEOUT_SECS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/locktests.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - destroy_busybox
  - create_busybox
  - main
  source_file: /src/lxc/src/tests/containertests.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/tests/containertests.c
      type_or_value: '"lxctest1"'
    - item_type: preproc_def
      name: CONFIGFNAM
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/lxc/src/tests/containertests.c
      type_or_value: LXCPATH "/" MYNAME "/config"
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_function
  - concurrent
  - main
  source_file: /src/lxc/src/tests/concurrent.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: thread_id
        type: int
      - name: return_code
        type: int
      - name: '*mode'
        type: char
      item_type: struct
      name: thread_args
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/lxc/src/tests/concurrent.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/lxc_raw_clone.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - comp_field
  - find_in_proc_mounts
  - check_containers_mountinfo
  - perform_container_test
  - do_priv_container_test
  - do_unpriv_container_test
  - lxc_setup_shmount
  - lxc_teardown_shmount
  - main
  source_file: /src/lxc/src/tests/mount_injection.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NAME
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/tests/mount_injection.c
      type_or_value: '"mount_injection_test-"'
    - item_type: preproc_def
      name: TEMPLATE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/tests/mount_injection.c
      type_or_value: P_tmpdir"/mount_injection_XXXXXX"
    structs:
    - fields:
      - name: '*mount_root'
        type: char
      - name: '*mount_point'
        type: char
      - name: '*fstype'
        type: char
      - name: '*mount_source'
        type: char
      - name: '*message'
        type: char
      - name: should_be_present
        type: bool
      item_type: struct
      name: mountinfo_data
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/lxc/src/tests/mount_injection.c
    typedefs: []
    union: []
- function_names:
  - create_container
  - main
  source_file: /src/lxc/src/tests/destroytest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/destroytest.c
      type_or_value: '"lxctest1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/getkeys.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/tests/getkeys.c
      type_or_value: '"lxctest1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/lxc/src/tests/fuzz-lxc-define-load.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TSTERR
  - test_running_container
  - test_container
  - main
  source_file: /src/lxc/src/tests/cgpath.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/tests/cgpath.c
      type_or_value: '"lxctest1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/tests/shutdowntest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MYNAME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/tests/shutdowntest.c
      type_or_value: '"lxctest1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_idmaps
  - lxc_config_value_empty
  - lxc_network_add
  - lxc_get_netdev_by_idx
  - list_for_each_entry
  - lxc_log_configured_netdevs
  - list_for_each_entry
  - lxc_clear_netdev
  - lxc_free_netdev
  - lxc_remove_nic_by_idx
  - lxc_free_networks
  - lxc_veth_mode_to_flag
  - lxc_veth_flag_to_mode
  - lxc_macvlan_mode_to_flag
  - lxc_macvlan_flag_to_mode
  - lxc_ipvlan_mode_to_flag
  - lxc_ipvlan_flag_to_mode
  - lxc_ipvlan_isolation_to_flag
  - lxc_ipvlan_flag_to_isolation
  - set_config_string_item
  - set_config_string_item_max
  - set_config_path_item
  - set_config_bool_item
  - config_ip_prefix
  - network_ifname
  - lxc_config_net_is_hwaddr
  - rand_complete_hwaddr
  - new_hwaddr
  - lxc_get_conf_str
  - lxc_get_conf_bool
  - lxc_get_conf_int
  - lxc_get_conf_size_t
  - lxc_get_conf_uint64
  - lxc_container_name_to_pid
  - lxc_inherit_namespace
  - sig_num
  - rt_sig_num
  - sig_parse
  source_file: /src/lxc/src/lxc/confile_utils.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: mode
        type: int
      item_type: struct
      name: lxc_veth_mode
      pos:
        line_end: 493
        line_start: 490
        source_file: /src/lxc/src/lxc/confile_utils.c
    - fields:
      - name: '*name'
        type: char
      - name: mode
        type: int
      item_type: struct
      name: lxc_macvlan_mode
      pos:
        line_end: 526
        line_start: 523
        source_file: /src/lxc/src/lxc/confile_utils.c
    - fields:
      - name: '*name'
        type: char
      - name: mode
        type: int
      item_type: struct
      name: lxc_ipvlan_mode
      pos:
        line_end: 561
        line_start: 558
        source_file: /src/lxc/src/lxc/confile_utils.c
    - fields:
      - name: '*name'
        type: char
      - name: flag
        type: int
      item_type: struct
      name: lxc_ipvlan_isolation
      pos:
        line_end: 595
        line_start: 592
        source_file: /src/lxc/src/lxc/confile_utils.c
    - fields:
      - name: num
        type: int
      - name: '*name'
        type: char
      item_type: struct
      name: signame
      pos:
        line_end: 933
        line_start: 930
        source_file: /src/lxc/src/lxc/confile_utils.c
    typedefs: []
    union: []
- function_names:
  - lxc_init_list
  - lxc_list_for_each
  - lxc_list_for_each_safe
  - lxc_list_init
  - lxc_list_add_elem
  - lxc_list_first_elem
  - lxc_list_last_elem
  - lxc_list_empty
  - __lxc_list_add
  - lxc_list_add
  - lxc_list_add_tail
  - lxc_list_del
  - lxc_list_len
  - lxc_list_for_each
  - lxc_list_new
  source_file: /src/lxc/src/lxc/list.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*elem'
        type: void
      - name: '*next'
        type: struct lxc_list
      - name: '*prev'
        type: struct lxc_list
      item_type: struct
      name: lxc_list
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/lxc/src/lxc/list.h
    typedefs: []
    union: []
- function_names:
  - lxc_namespace_2_cloneflag
  - lxc_namespace_2_ns_idx
  - lxc_namespace_2_std_identifiers
  - lxc_fill_namespace_flags
  source_file: /src/lxc/src/lxc/namespace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_ringbuf_create
  - lxc_ringbuf_move_read_addr
  - lxc_ringbuf_write
  - lxc_ringbuf_read
  source_file: /src/lxc/src/lxc/ringbuf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/uuid.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/lxc/src/lxc/uuid.h
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: lxc_id128_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/lxc/src/lxc/uuid.h
      type: lxc_id128
    union:
    - fields:
      - name: bytes[16]
        type: uint8_t
      - name: qwords[2]
        type: uint64_t
      item_type: union
      name: lxc_id128
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/lxc/src/lxc/uuid.h
- function_names: []
  source_file: /src/lxc/src/lxc/criu.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_cmd_init
  - lxc_cmd_data
  source_file: /src/lxc/src/lxc/commands.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_CMD_REAP_CLIENT_FD
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/commands.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LXC_CMD_KEEP_CLIENT_FD
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/commands.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ENCODE_INTO_PTR_LEN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/lxc/src/lxc/commands.h
      type_or_value: '0'
    structs:
    - fields:
      - name: cmd
        type: lxc_cmd_t
      - name: datalen
        type: int
      - name: '*data'
        type: void
      item_type: struct
      name: lxc_cmd_req
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/lxc/src/lxc/commands.h
    - fields:
      - name: ret
        type: int
      - name: datalen
        type: int
      - name: '*data'
        type: void
      item_type: struct
      name: lxc_cmd_rsp
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/lxc/src/lxc/commands.h
    - fields:
      - name: req
        type: struct lxc_cmd_req
      - name: rsp
        type: struct lxc_cmd_rsp
      item_type: struct
      name: lxc_cmd_rr
      pos:
        line_end: 75
        line_start: 72
        source_file: /src/lxc/src/lxc/commands.h
    - fields:
      - name: ptxfd
        type: int
      - name: ttynum
        type: int
      item_type: struct
      name: lxc_cmd_tty_rsp_data
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/lxc/src/lxc/commands.h
    - fields:
      - name: clear
        type: bool
      - name: read
        type: bool
      - name: read_max
        type: uint64_t
      - name: write_logfile
        type: bool
      item_type: struct
      name: lxc_cmd_console_log
      pos:
        line_end: 102
        line_start: 96
        source_file: /src/lxc/src/lxc/commands.h
    typedefs: []
    union: []
- function_names:
  - lxc_ringbuf_release
  - lxc_ringbuf_clear
  - lxc_ringbuf_used
  - lxc_ringbuf_free
  - lxc_ringbuf_get_read_addr
  - lxc_ringbuf_get_write_addr
  - lxc_ringbuf_move_write_addr
  source_file: /src/lxc/src/lxc/ringbuf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*addr'
        type: char
      - name: size
        type: uint64_t
      - name: r_off
        type: uint64_t
      - name: w_off
        type: uint64_t
      item_type: struct
      name: lxc_ringbuf
      pos:
        line_end: 28
        line_start: 23
        source_file: /src/lxc/src/lxc/ringbuf.h
    typedefs: []
    union: []
- function_names:
  - do_freeze_thaw
  - lxc_freeze
  - lxc_unfreeze
  source_file: /src/lxc/src/lxc/freezer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/commands_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_log_priority_is_enabled
  - lxc_log_priority_to_string
  - lxc_syslog_priority_to_string
  - lxc_log_priority_to_int
  - lxc_syslog_priority_to_int
  - __lxc_log_append
  - __lxc_log
  - lxc_log_priority_define
  - lxc_log_category_define
  - lxc_log_define
  - lxc_log_category_priority
  - TRACE
  - DEBUG
  - INFO
  - NOTICE
  - WARN
  - ERROR
  - CRIT
  - ALERT
  - FATAL
  - SYSTRACE
  - SYSTRACE
  - SYSDEBUG
  - SYSDEBUG
  - SYSINFO
  - SYSINFO
  - SYSNOTICE
  - SYSNOTICE
  - SYSWARN
  - SYSWARN
  - SYSERROR
  - SYSERROR
  - CMD_SYSERROR
  - CMD_SYSERROR
  - CMD_SYSINFO
  - CMD_SYSINFO
  - log_error_errno
  - log_error
  - log_trace_errno
  - log_trace
  - log_warn_errno
  - log_warn
  - log_debug_errno
  - log_debug
  - log_info_errno
  - log_info
  - syserror
  - syserror_set
  - syserror_ret
  - error_ret
  - syswarn
  - syswarn_set
  - syswarn_ret
  - sysinfo
  - sysinfo_set
  - sysinfo_ret
  - sysdebug
  - sysdebug_set
  - sysdebug_ret
  - systrace
  - systrace_set
  - systrace_ret
  - lxc_log_trace
  source_file: /src/lxc/src/lxc/log.h
  types:
    enum:
    - enumerators:
      - name: LXC_LOG_LEVEL_TRACE
      - name: LXC_LOG_LEVEL_WARN
      - name: LXC_LOG_LEVEL_DEBUG
      - name: LXC_LOG_LEVEL_NOTICE
      - name: LXC_LOG_LEVEL_INFO
      - name: LXC_LOG_LEVEL_ERROR
      - name: LXC_LOG_LEVEL_CRIT
      - name: LXC_LOG_LEVEL_ALERT
      - name: LXC_LOG_LEVEL_FATAL
      - name: LXC_LOG_LEVEL_NOTSET
      item_type: enum
      name: lxc_loglevel
      pos:
        line_end: 43
        line_start: 32
        source_file: /src/lxc/src/lxc/log.h
    preproc_defs:
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: '02000000'
    - item_type: preproc_def
      name: F_DUPFD_CLOEXEC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: '1030'
    - item_type: preproc_def
      name: LXC_LOG_PREFIX_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: '32'
    - item_type: preproc_def
      name: LXC_LOG_BUFFER_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: LXC_LOG_LOCINFO_INIT
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: "{ .file = __FILE__, .func = __func__, .line = __LINE__\t}"
    - item_type: preproc_def
      name: lxc_log_strerror_r
      pos:
        line_end: 323
        line_start: 313
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: "char errno_buf[PATH_MAX / 2] = {\"Failed to get errno string\"};
        \  \\\n\t\t\tchar *ptr = NULL;                                                \\\n\t\t\t{
        \                                                               \\\n\t\t\t\tint
        __saved_errno = errno;\t\t\t\t \\\n\t\t\t\tptr = strerror_r(errno, errno_buf,
        sizeof(errno_buf));   \\\n\t\t\t\terrno = __saved_errno;\t\t\t\t\t \\\n\t\t\t\tif
        (!ptr)                                                \\\n\t\t\t\t\tptr =
        errno_buf;                                 \\\n\t\t\t}"
    - item_type: preproc_def
      name: lxc_log_strerror_r
      pos:
        line_end: 332
        line_start: 324
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: "char errno_buf[PATH_MAX / 2] = {\"Failed to get errno string\"};
        \  \\\n\t\t\tchar *ptr = errno_buf;                                           \\\n\t\t\t{
        \                                                               \\\n\t\t\t\tint
        __saved_errno = errno;\t\t\t\t \\\n\t\t\t\t(void)strerror_r(errno, errno_buf,
        sizeof(errno_buf));   \\\n\t\t\t\terrno = __saved_errno;\t\t\t\t\t \\\n\t\t\t}"
    - item_type: preproc_def
      name: lxc_log_strerror_r
      pos:
        line_end: 341
        line_start: 336
        source_file: /src/lxc/src/lxc/log.h
      type_or_value: "char *ptr = NULL;              \t\t\t\t\t\t \\\n\t\t{                              \t\t\t\t\t\t
        \\\n\t\t\tptr = strerror(errno); \t\t\t\t\t\t \\\n\t\t}"
    structs:
    - fields:
      - name: '*file'
        type: char
      - name: '*func'
        type: char
      - name: line
        type: int
      item_type: struct
      name: lxc_log_locinfo
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/lxc/src/lxc/log.h
    - fields:
      - name: '*category'
        type: char
      - name: priority
        type: int
      - name: timestamp
        type: struct timespec
      - name: '*locinfo'
        type: struct lxc_log_locinfo
      - name: '*fmt'
        type: char
      - name: '*vap'
        type: va_list
      item_type: struct
      name: lxc_log_event
      pos:
        line_end: 63
        line_start: 56
        source_file: /src/lxc/src/lxc/log.h
    - fields:
      - name: '*name'
        type: char
      - name: (*append)(const struct lxc_log_appender *, struct lxc_log_event *)
        type: int
      - name: '*next'
        type: struct lxc_log_appender
      item_type: struct
      name: lxc_log_appender
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/lxc/src/lxc/log.h
    - fields:
      - name: '*name'
        type: char
      - name: priority
        type: int
      - name: '*appender'
        type: struct lxc_log_appender
      - name: '*parent'
        type: struct lxc_log_category
      item_type: struct
      name: lxc_log_category
      pos:
        line_end: 82
        line_start: 77
        source_file: /src/lxc/src/lxc/log.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/network.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: addr
        type: struct in_addr
      - name: bcast
        type: struct in_addr
      - name: prefix
        type: unsigned int
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_inetdev
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/lxc/src/lxc/network.h
    - fields:
      - name: addr
        type: struct in6_addr
      - name: mcast
        type: struct in6_addr
      - name: acast
        type: struct in6_addr
      - name: prefix
        type: unsigned int
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_inet6dev
      pos:
        line_end: 59
        line_start: 53
        source_file: /src/lxc/src/lxc/network.h
    - fields:
      - name: pair[IFNAMSIZ]
        type: char
      - name: veth1[IFNAMSIZ]
        type: char
      - name: ifindex
        type: int
      - name: ipv4_routes
        type: struct list_head
      - name: ipv6_routes
        type: struct list_head
      - name: mode
        type: int
      - name: n_rxqueues
        type: int
      - name: n_txqueues
        type: int
      - name: vlan_id
        type: short
      - name: vlan_id_set
        type: bool
      - name: vlan_tagged_ids
        type: struct lxc_list
      item_type: struct
      name: ifla_veth
      pos:
        line_end: 84
        line_start: 72
        source_file: /src/lxc/src/lxc/network.h
    - fields:
      - name: flags
        type: unsigned int
      - name: fmask
        type: unsigned int
      - name: vid
        type: unsigned short
      - name: pad
        type: unsigned short
      item_type: struct
      name: ifla_vlan
      pos:
        line_end: 91
        line_start: 86
        source_file: /src/lxc/src/lxc/network.h
    - fields:
      - name: mode
        type: int
      item_type: struct
      name: ifla_macvlan
      pos:
        line_end: 95
        line_start: 93
        source_file: /src/lxc/src/lxc/network.h
    - fields:
      - name: mode
        type: int
      - name: isolation
        type: int
      item_type: struct
      name: ifla_ipvlan
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/lxc/src/lxc/network.h
    - fields:
      - name: ifindex
        type: int
      - name: mtu
        type: int
      item_type: struct
      name: ifla_phys
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/lxc/src/lxc/network.h
    - fields:
      - name: idx
        type: ssize_t
      - name: ifindex
        type: int
      - name: type
        type: int
      - name: flags
        type: int
      - name: link[IFNAMSIZ]
        type: char
      - name: l2proxy
        type: bool
      - name: name[IFNAMSIZ]
        type: char
      - name: created_name[IFNAMSIZ]
        type: char
      - name: transient_name[IFNAMSIZ]
        type: char
      - name: '*hwaddr'
        type: char
      - name: '*mtu'
        type: char
      - name: priv
        type: union netdev_p
      - name: ipv4_addresses
        type: struct list_head
      - name: ipv6_addresses
        type: struct list_head
      - name: ipv4_gateway_auto
        type: bool
      - name: ipv4_gateway_dev
        type: bool
      - name: '*ipv4_gateway'
        type: struct in_addr
      - name: ipv6_gateway_auto
        type: bool
      - name: ipv6_gateway_dev
        type: bool
      - name: '*ipv6_gateway'
        type: struct in6_addr
      - name: '*upscript'
        type: char
      - name: '*downscript'
        type: char
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_netdev
      pos:
        line_end: 182
        line_start: 158
        source_file: /src/lxc/src/lxc/network.h
    typedefs: []
    union:
    - fields:
      - name: macvlan_attr
        type: struct ifla_macvlan
      - name: ipvlan_attr
        type: struct ifla_ipvlan
      - name: phys_attr
        type: struct ifla_phys
      - name: veth_attr
        type: struct ifla_veth
      - name: vlan_attr
        type: struct ifla_vlan
      item_type: union
      name: netdev_p
      pos:
        line_end: 117
        line_start: 111
        source_file: /src/lxc/src/lxc/network.h
- function_names:
  - lxc_error_set_and_log
  source_file: /src/lxc/src/lxc/error.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - push_vargs
  - parse_argv
  - is_memfd
  - lxc_rexec_as_memfd
  - lxc_rexec
  - liblxc_rexec
  source_file: /src/lxc/src/lxc/rexec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_MEMFD_REXEC_SEALS
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/lxc/src/lxc/rexec.c
      type_or_value: (F_SEAL_SEAL | F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_state2str
  - lxc_str2state
  - lxc_getstate
  - fillwaitedstates
  - lxc_wait
  source_file: /src/lxc/src/lxc/state.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RTNLMSG_DATA
  source_file: /src/lxc/src/lxc/rtnl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RTNLMSG_GOOD_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/lxc/src/lxc/rtnl.h
      type_or_value: NLMSG_GOOD_SIZE
    structs:
    - fields:
      - name: nlh
        type: struct nl_handler
      item_type: struct
      name: rtnl_handler
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/lxc/src/lxc/rtnl.h
    - fields:
      - name: nlmsghdr
        type: struct nlmsghdr
      item_type: struct
      name: rtnlmsg
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/lxc/src/lxc/rtnl.h
    typedefs: []
    union: []
- function_names:
  - lxc_cmd_sock_rcv_state
  - lxc_cmd_sock_get_state
  - lxc_make_abstract_socket_name
  - lxc_cmd_connect
  - lxc_add_state_client
  - lxc_cmd_notify_state_listeners
  source_file: /src/lxc/src/lxc/commands_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_v4_uuid
  - get_random_bytes
  - lxc_id128_randomize
  - hexchar
  - id128_to_uuid_string
  - lxc_id128_write_fd
  - lxc_id128_write
  source_file: /src/lxc/src/lxc/uuid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_set_cloexec
  - __auto_lxc_pclose__
  - am_guest_unpriv
  - am_host_unpriv
  - switch_to_ns
  - lxc_getpagesize
  - uid_valid
  - gid_valid
  - copy_struct_from_client
  - copy_struct_to_client
  - is_in_comm
  source_file: /src/lxc/src/lxc/utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __do_lxc_pclose
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/lxc/src/lxc/utils.h
      type_or_value: __attribute__((__cleanup__(__auto_lxc_pclose__)))
    - item_type: preproc_def
      name: FNV1A_64_INIT
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/lxc/src/lxc/utils.h
      type_or_value: ((uint64_t)0xcbf29ce484222325ULL)
    structs:
    - fields:
      - name: pipe
        type: int
      - name: '*f'
        type: FILE
      - name: child_pid
        type: pid_t
      item_type: struct
      name: lxc_popen_FILE
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/lxc/src/lxc/utils.h
    typedefs: []
    union: []
- function_names:
  - rtnetlink_open
  - rtnetlink_close
  - rtnetlink_rcv
  - rtnetlink_send
  - rtnetlink_transaction
  - rtnlmsg_alloc
  - rtnlmsg_free
  source_file: /src/lxc/src/lxc/rtnl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/syscall_numbers.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '288'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '250'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '311'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '311'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '280'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '271'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '219'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '283'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (249 + 1024)
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4282'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6245'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5241'
    - item_type: preproc_def
      name: __NR_keyctl
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '219'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '356'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '319'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '385'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '279'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '350'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '360'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '279'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '348'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '390'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '1340'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4354'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6318'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5314'
    - item_type: preproc_def
      name: __NR_memfd_create
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '279'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '217'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '155'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '218'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '218'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '217'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '203'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '41'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '146'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (183 + 1024)
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4216'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6151'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5151'
    - item_type: preproc_def
      name: __NR_pivot_root
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '41'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '346'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '308'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '375'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '375'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '339'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '350'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '268'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '337'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (306 + 1024)
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4344'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6308'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5303'
    - item_type: preproc_def
      name: __NR_setns
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '268'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '170'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '161'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '88'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (59 + 1024)
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '474'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6165'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5165'
    - item_type: preproc_def
      name: __NR_sethostname
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '161'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '321'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '282'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '349'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '349'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '316'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '305'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '311'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (283 + 1024)
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4317'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6280'
    - item_type: preproc_def
      name: __NR_signalfd
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5276'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '327'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '289'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '355'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '355'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '322'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '313'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '317'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (289 + 1024)
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4324'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6287'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5283'
    - item_type: preproc_def
      name: __NR_signalfd4
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '74'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '310'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '272'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '337'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '337'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '303'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '282'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '97'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '299'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (272 + 1024)
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4303'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6266'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5262'
    - item_type: preproc_def
      name: __NR_unshare
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '97'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '357'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '321'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '386'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '386'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '351'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '361'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '280'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '349'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (317 + 1024)
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4355'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6319'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5315'
    - item_type: preproc_def
      name: __NR_bpf
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '280'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '307'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '269'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '334'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '334'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '300'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '298'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '48'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '296'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (269 + 1024)
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4300'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6263'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5259'
    - item_type: preproc_def
      name: __NR_faccessat
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '48'
    - item_type: preproc_def
      name: __NR_pidfd_send_signal
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '534'
    - item_type: preproc_def
      name: __NR_pidfd_send_signal
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4424'
    - item_type: preproc_def
      name: __NR_pidfd_send_signal
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6424'
    - item_type: preproc_def
      name: __NR_pidfd_send_signal
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5424'
    - item_type: preproc_def
      name: __NR_pidfd_send_signal
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (424 + 1024)
    - item_type: preproc_def
      name: __NR_pidfd_send_signal
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '424'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '354'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '317'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '383'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '383'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '348'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '358'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '277'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '346'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (329 + 1024)
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4352'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6316'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5312'
    - item_type: preproc_def
      name: __NR_seccomp
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '277'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '224'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '186'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '224'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '224'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '236'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '207'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '178'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '143'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (81 + 1024)
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4222'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6178'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5178'
    - item_type: preproc_def
      name: __NR_gettid
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '178'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '358'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '545'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '322'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '387'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '387'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '354'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '362'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '281'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '350'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (318 + 1024)
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4356'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6320'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5316'
    - item_type: preproc_def
      name: __NR_execveat
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '281'
    - item_type: preproc_def
      name: __NR_move_mount
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '539'
    - item_type: preproc_def
      name: __NR_move_mount
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4429'
    - item_type: preproc_def
      name: __NR_move_mount
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6429'
    - item_type: preproc_def
      name: __NR_move_mount
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5429'
    - item_type: preproc_def
      name: __NR_move_mount
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (428 + 1024)
    - item_type: preproc_def
      name: __NR_move_mount
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '429'
    - item_type: preproc_def
      name: __NR_open_tree
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '538'
    - item_type: preproc_def
      name: __NR_open_tree
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4428'
    - item_type: preproc_def
      name: __NR_open_tree
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6428'
    - item_type: preproc_def
      name: __NR_open_tree
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5428'
    - item_type: preproc_def
      name: __NR_open_tree
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (428 + 1024)
    - item_type: preproc_def
      name: __NR_open_tree
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '428'
    - item_type: preproc_def
      name: __NR_clone3
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '545'
    - item_type: preproc_def
      name: __NR_clone3
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4435'
    - item_type: preproc_def
      name: __NR_clone3
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6435'
    - item_type: preproc_def
      name: __NR_clone3
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5435'
    - item_type: preproc_def
      name: __NR_clone3
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (435 + 1024)
    - item_type: preproc_def
      name: __NR_clone3
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '435'
    - item_type: preproc_def
      name: __NR_fsopen
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '540'
    - item_type: preproc_def
      name: __NR_fsopen
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4430'
    - item_type: preproc_def
      name: __NR_fsopen
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6430'
    - item_type: preproc_def
      name: __NR_fsopen
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5430'
    - item_type: preproc_def
      name: __NR_fsopen
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (430 + 1024)
    - item_type: preproc_def
      name: __NR_fsopen
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '430'
    - item_type: preproc_def
      name: __NR_fspick
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '543'
    - item_type: preproc_def
      name: __NR_fspick
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4433'
    - item_type: preproc_def
      name: __NR_fspick
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6433'
    - item_type: preproc_def
      name: __NR_fspick
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5433'
    - item_type: preproc_def
      name: __NR_fspick
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (433 + 1024)
    - item_type: preproc_def
      name: __NR_fspick
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '433'
    - item_type: preproc_def
      name: __NR_fsconfig
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '541'
    - item_type: preproc_def
      name: __NR_fsconfig
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4431'
    - item_type: preproc_def
      name: __NR_fsconfig
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6431'
    - item_type: preproc_def
      name: __NR_fsconfig
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5431'
    - item_type: preproc_def
      name: __NR_fsconfig
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (431 + 1024)
    - item_type: preproc_def
      name: __NR_fsconfig
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '431'
    - item_type: preproc_def
      name: __NR_fsmount
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '542'
    - item_type: preproc_def
      name: __NR_fsmount
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4432'
    - item_type: preproc_def
      name: __NR_fsmount
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6432'
    - item_type: preproc_def
      name: __NR_fsmount
      pos:
        line_end: 645
        line_start: 644
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5432'
    - item_type: preproc_def
      name: __NR_fsmount
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (432 + 1024)
    - item_type: preproc_def
      name: __NR_fsmount
      pos:
        line_end: 650
        line_start: 649
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '432'
    - item_type: preproc_def
      name: __NR_openat2
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '547'
    - item_type: preproc_def
      name: __NR_openat2
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '4437'
    - item_type: preproc_def
      name: __NR_openat2
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '6437'
    - item_type: preproc_def
      name: __NR_openat2
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '5437'
    - item_type: preproc_def
      name: __NR_openat2
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (437 + 1024)
    - item_type: preproc_def
      name: __NR_openat2
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '437'
    - item_type: preproc_def
      name: __NR_close_range
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '546'
    - item_type: preproc_def
      name: __NR_close_range
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (436 + 4000)
    - item_type: preproc_def
      name: __NR_close_range
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (436 + 6000)
    - item_type: preproc_def
      name: __NR_close_range
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (436 + 5000)
    - item_type: preproc_def
      name: __NR_close_range
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (436 + 1024)
    - item_type: preproc_def
      name: __NR_close_range
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '436'
    - item_type: preproc_def
      name: __NR_mount_setattr
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '552'
    - item_type: preproc_def
      name: __NR_mount_setattr
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (442 + 4000)
    - item_type: preproc_def
      name: __NR_mount_setattr
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (442 + 6000)
    - item_type: preproc_def
      name: __NR_mount_setattr
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (442 + 5000)
    - item_type: preproc_def
      name: __NR_mount_setattr
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (442 + 1024)
    - item_type: preproc_def
      name: __NR_mount_setattr
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '442'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '324'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 718
        line_start: 717
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '136'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '136'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '135'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '136'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '92'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '136'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '136'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '191'
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (116 + 1024)
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (136 + 4000)
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (132 + 6000)
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: (132 + 5000)
    - item_type: preproc_def
      name: __NR_personality
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/lxc/src/lxc/syscall_numbers.h
      type_or_value: '92'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __seccomp
  - parse_config_v1
  - get_action_name
  - get_v2_default_action
  - get_v2_action
  - parse_v2_rule_op
  - get_seccomp_arg_value
  - parse_v2_rules
  - get_hostarch
  - get_new_ctx
  - do_resolve_add_rule
  - is_denylist
  - is_allowlist
  - parse_config_v2
  - parse_config_v2
  - parse_config
  - use_seccomp
  - lxc_read_seccomp_config
  - lxc_seccomp_load
  - lxc_seccomp_free
  - seccomp_notify_reconnect
  - seccomp_notify_default_answer
  - seccomp_notify_cleanup_handler
  - seccomp_notify_handler
  - seccomp_conf_init
  - lxc_seccomp_setup_proxy
  - lxc_seccomp_send_notifier_fd
  - lxc_seccomp_recv_notifier_fd
  - lxc_seccomp_add_notifier
  source_file: /src/lxc/src/lxc/seccomp.c
  types:
    enum:
    - enumerators:
      - name: lxc_seccomp_arch_amd64
      - name: lxc_seccomp_arch_ppc64le
      - name: lxc_seccomp_arch_s390x
      - name: lxc_seccomp_arch_mips64n32
      - name: lxc_seccomp_arch_native
      - name: lxc_seccomp_arch_arm
      - name: lxc_seccomp_arch_ppc
      - name: lxc_seccomp_arch_s390
      - name: lxc_seccomp_arch_mipsel
      - name: lxc_seccomp_arch_i386
      - name: lxc_seccomp_arch_arm64
      - name: lxc_seccomp_arch_mips
      - name: lxc_seccomp_arch_mipsel64
      - name: lxc_seccomp_arch_loongarch64
      - name: lxc_seccomp_arch_all
        value: '0'
      - name: lxc_seccomp_arch_x32
      - name: lxc_seccomp_arch_ppc64
      - name: lxc_seccomp_arch_mips64
      - name: lxc_seccomp_arch_mipsel64n32
      - name: lxc_seccomp_arch_unknown
        value: '999'
      item_type: enum
      name: lxc_hostarch_t
      pos:
        line_end: 319
        line_start: 298
        source_file: /src/lxc/src/lxc/seccomp.c
    - enumerators:
      - name: lxc_seccomp_rule_added
        value: '0'
      - name: lxc_seccomp_rule_err
      - name: lxc_seccomp_rule_undefined_syscall
      - name: lxc_seccomp_rule_unsupported_arch
      item_type: enum
      name: lxc_seccomp_rule_status_t
      pos:
        line_end: 501
        line_start: 496
        source_file: /src/lxc/src/lxc/seccomp.c
    preproc_defs:
    - item_type: preproc_def
      name: MIPS_ARCH_O32
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/lxc/seccomp.c
      type_or_value: lxc_seccomp_arch_mipsel
    - item_type: preproc_def
      name: MIPS_ARCH_N64
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/seccomp.c
      type_or_value: lxc_seccomp_arch_mipsel64
    - item_type: preproc_def
      name: MIPS_ARCH_O32
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/seccomp.c
      type_or_value: lxc_seccomp_arch_mips
    - item_type: preproc_def
      name: MIPS_ARCH_N64
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/lxc/seccomp.c
      type_or_value: lxc_seccomp_arch_mips64
    - item_type: preproc_def
      name: SECCOMP_GET_NOTIF_SIZES
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/lxc/seccomp.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BACKWARDCOMPAT_TERMINOLOGY_DENYLIST
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/lxc/src/lxc/seccomp.c
      type_or_value: '"blacklist"'
    - item_type: preproc_def
      name: BACKWARDCOMPAT_TERMINOLOGY_ALLOWLIST
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/lxc/src/lxc/seccomp.c
      type_or_value: '"whitelist"'
    structs:
    - fields:
      - name: index
        type: uint32_t
      - name: value
        type: uint64_t
      - name: mask
        type: uint64_t
      - name: op
        type: enum scmp_compare
      item_type: struct
      name: seccomp_v2_rule_args
      pos:
        line_end: 162
        line_start: 157
        source_file: /src/lxc/src/lxc/seccomp.c
    - fields:
      - name: action
        type: uint32_t
      - name: args_num
        type: uint32_t
      - name: args_value[6]
        type: struct seccomp_v2_rule_args
      item_type: struct
      name: seccomp_v2_rule
      pos:
        line_end: 168
        line_start: 164
        source_file: /src/lxc/src/lxc/seccomp.c
    - fields:
      - name: architectures[3]
        type: uint32_t
      - name: contexts[3]
        type: scmp_filter_ctx
      - name: needs_merge[3]
        type: bool
      item_type: struct
      name: scmp_ctx_info
      pos:
        line_end: 634
        line_start: 630
        source_file: /src/lxc/src/lxc/seccomp.c
    typedefs: []
    union: []
- function_names:
  - nlmsg_len
  - nlmsg_data
  - nla_put
  - nla_put_buffer
  - nla_put_string
  - nla_put_u32
  - nla_put_u16
  - nla_put_attr
  - nla_begin_nested
  - nla_end_nested
  - nlmsg_alloc
  - nlmsg_reserve
  - nlmsg_alloc_reserve
  - nlmsg_free
  - __netlink_recv
  - netlink_rcv
  - __netlink_send
  - netlink_send
  - __netlink_transaction
  - netlink_transaction
  - netlink_open
  - netlink_close
  - addattr
  source_file: /src/lxc/src/lxc/nl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_va_arg_list_to_argv
  - lxc_va_arg_list_to_argv_const
  - lxc_string_replace
  - lxc_string_in_array
  - lxc_string_join
  - lxc_path_simplify
  - lxc_append_paths
  - lxc_string_in_list
  - lxc_string_split
  - lxc_iterate_parts
  - complete_word
  - lxc_string_split_quoted
  - lxc_string_split_and_trim
  - lxc_iterate_parts
  - lxc_free_array
  - lxc_grow_array
  - lxc_array_len
  - lxc_append_null_to_array
  - lxc_append_null_to_list
  - lxc_append_string
  - lxc_safe_uint
  - lxc_safe_ulong
  - lxc_safe_uint64
  - lxc_safe_int64_residual
  - lxc_safe_int
  - lxc_safe_long
  - lxc_safe_long_long
  - must_concat
  - must_make_path
  - must_append_path
  - must_copy_string
  - must_realloc
  - parse_byte_size_string
  - remove_trailing_newlines
  - lxc_char_left_gc
  - lxc_char_right_gc
  - lxc_trim_whitespace_in_place
  - lxc_is_line_empty
  - remove_trailing_slashes
  source_file: /src/lxc/src/lxc/string_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - move_mount_lxc
  - open_tree_lxc
  - fsopen_lxc
  - fspick_lxc
  - fsconfig_lxc
  - fsmount_lxc
  - mount_setattr
  - fs_mount
  - fd_mount_idmapped
  - fd_bind_mount
  - mount_fd
  source_file: /src/lxc/src/lxc/mount_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AT_RECURSIVE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x8000 '
    - item_type: preproc_def
      name: OPEN_TREE_CLONE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPEN_TREE_CLOEXEC
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: O_CLOEXEC
    - item_type: preproc_def
      name: MOVE_MOUNT_F_SYMLINKS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: MOVE_MOUNT_F_AUTOMOUNTS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: MOVE_MOUNT_F_EMPTY_PATH
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: MOVE_MOUNT_T_SYMLINKS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: MOVE_MOUNT_T_AUTOMOUNTS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: MOVE_MOUNT_T_EMPTY_PATH
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: MOVE_MOUNT__MASK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000077'
    - item_type: preproc_def
      name: FSOPEN_CLOEXEC
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: FSPICK_CLOEXEC
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: FSPICK_SYMLINK_NOFOLLOW
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: FSPICK_NO_AUTOMOUNT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: FSPICK_EMPTY_PATH
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: FSCONFIG_SET_FLAG
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: FSCONFIG_SET_STRING
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: FSCONFIG_SET_BINARY
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: FSCONFIG_SET_PATH
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: FSCONFIG_SET_PATH_EMPTY
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: FSCONFIG_SET_FD
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: FSCONFIG_CMD_CREATE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: FSCONFIG_CMD_RECONFIGURE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: "7\t"
    - item_type: preproc_def
      name: FSMOUNT_CLOEXEC
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: MOUNT_ATTR_RDONLY
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: MOUNT_ATTR_NOSUID
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: MOUNT_ATTR_NODEV
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: MOUNT_ATTR_NOEXEC
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: MOUNT_ATTR__ATIME
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000070 '
    - item_type: preproc_def
      name: MOUNT_ATTR_RELATIME
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000000 '
    - item_type: preproc_def
      name: MOUNT_ATTR_NOATIME
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: MOUNT_ATTR_STRICTATIME
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: MOUNT_ATTR_NODIRATIME
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: MOUNT_ATTR_IDMAP
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: MOUNT_ATTR_NOSYMFOLLOW
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: '0x00200000 '
    - item_type: preproc_def
      name: move_mount
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: move_mount_lxc
    - item_type: preproc_def
      name: open_tree
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: open_tree_lxc
    - item_type: preproc_def
      name: fsopen
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: fsopen_lxc
    - item_type: preproc_def
      name: fspick
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: fspick_lxc
    - item_type: preproc_def
      name: fsconfig
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: fsconfig_lxc
    - item_type: preproc_def
      name: fsmount
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/lxc/src/lxc/mount_utils.h
      type_or_value: fsmount_lxc
    structs:
    - fields:
      - name: attr_set
        type: __u64
      - name: attr_clr
        type: __u64
      - name: propagation
        type: __u64
      - name: userns_fd
        type: __u64
      item_type: struct
      name: mount_attr
      pos:
        line_end: 255
        line_start: 250
        source_file: /src/lxc/src/lxc/mount_utils.h
    typedefs: []
    union: []
- function_names:
  - lxc_read_string_nointr
  - fd_to_fd
  - dup_cloexec
  source_file: /src/lxc/src/lxc/file_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (((struct statfs *)NULL)->f_type)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/lxc/src/lxc/file_utils.h
      type: __typeof__
    union: []
- function_names:
  - execute_start
  - execute_post_start
  - lxc_execute
  source_file: /src/lxc/src/lxc/execute.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/attach.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/attach_options.h
  types:
    enum:
    - enumerators:
      - name: LXC_ATTACH_KEEP_ENV
        value: '0'
      - name: LXC_ATTACH_CLEAR_ENV
        value: '1'
      item_type: enum
      name: lxc_attach_env_policy_t
      pos:
        line_end: 20
        line_start: 14
        source_file: /src/lxc/src/lxc/attach_options.h
    preproc_defs:
    - item_type: preproc_def
      name: LXC_ATTACH_LSM
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/lxc/src/lxc/attach_options.h
      type_or_value: (LXC_ATTACH_LSM_EXEC | LXC_ATTACH_LSM_NOW | LXC_ATTACH_LSM_LABEL)
    - item_type: preproc_def
      name: LXC_ATTACH_DETECT_PERSONALITY
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/lxc/src/lxc/attach_options.h
      type_or_value: ~0L
    - item_type: preproc_def
      name: LXC_ATTACH_OPTIONS_DEFAULT
      pos:
        line_end: 178
        line_start: 160
        source_file: /src/lxc/src/lxc/attach_options.h
      type_or_value: "{                                               \t\t\\\n\t\t.attach_flags\t=
        LXC_ATTACH_DEFAULT,   \t\t\\\n\t\t.namespaces\t= -1,\t\t\t\t\t\\\n\t\t.personality\t=
        LXC_ATTACH_DETECT_PERSONALITY,\t\\\n\t\t.initial_cwd\t= NULL,\t\t\t\t\t\\\n\t\t.uid\t\t=
        (uid_t)-1,            \t\t\\\n\t\t.gid\t\t= (gid_t)-1,            \t\t\\\n\t\t.env_policy\t=
        LXC_ATTACH_KEEP_ENV,  \t\t\\\n\t\t.extra_env_vars = NULL,                 \t\t\\\n\t\t.extra_keep_env
        = NULL,                 \t\t\\\n\t\t.stdin_fd\t= 0,                    \t\t\\\n\t\t.stdout_fd\t=
        1,                    \t\t\\\n\t\t.stderr_fd\t= 2,                    \t\t\\\n\t\t.log_fd\t\t=
        -EBADF,               \t\t\\\n\t\t.lsm_label\t= NULL,\t\t\t\t\t\\\n\t\t.groups\t\t=
        {},\t\t\t\t\t\\\n\t}"
    structs:
    - fields:
      - name: size
        type: size_t
      - name: '*list'
        type: gid_t
      item_type: struct
      name: lxc_groups_t
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/lxc/src/lxc/attach_options.h
    - fields:
      - name: attach_flags
        type: int
      - name: namespaces
        type: int
      - name: personality
        type: long
      - name: '*initial_cwd'
        type: char
      - name: uid
        type: uid_t
      - name: gid
        type: gid_t
      - name: env_policy
        type: lxc_attach_env_policy_t
      - name: '**extra_env_vars'
        type: char
      - name: '**extra_keep_env'
        type: char
      - name: stdin_fd
        type: int
      - name: stdout_fd
        type: int
      - name: stderr_fd
        type: int
      - name: log_fd
        type: int
      - name: '*lsm_label'
        type: char
      - name: groups
        type: lxc_groups_t
      item_type: struct
      name: lxc_attach_options_t
      pos:
        line_end: 157
        line_start: 89
        source_file: /src/lxc/src/lxc/attach_options.h
    - fields:
      - name: '*program'
        type: char
      - name: '**argv'
        type: char
      item_type: struct
      name: lxc_attach_command_t
      pos:
        line_end: 185
        line_start: 182
        source_file: /src/lxc/src/lxc/attach_options.h
    typedefs:
    - item_type: typedef
      name: (*lxc_attach_exec_t)(void* payload)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/lxc/src/lxc/attach_options.h
      type: int
    union: []
- function_names:
  - lxc_strmmap
  - lxc_strmunmap
  - lxc_file_for_each_line_mmap
  - lxc_file_for_each_line
  source_file: /src/lxc/src/lxc/parse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/sync.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/lxclock.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: F_OFD_GETLK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/lxc/lxclock.h
      type_or_value: '36'
    - item_type: preproc_def
      name: F_OFD_SETLK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/lxc/lxclock.h
      type_or_value: '37'
    - item_type: preproc_def
      name: F_OFD_SETLKW
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/lxclock.h
      type_or_value: '38'
    - item_type: preproc_def
      name: LXC_LOCK_ANON_SEM
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/lxclock.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: LXC_LOCK_FLOCK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/lxc/lxclock.h
      type_or_value: '2 '
    structs:
    - fields:
      - name: type
        type: short
      - name: u
        type: "union {\n\t\tsem_t *sem; /*!< Anonymous semaphore (LXC_LOCK_ANON_SEM)
          */\n\t\t/*! LXC_LOCK_FLOCK details */\n\t\tstruct {\n\t\t\tint   fd; /*!<
          fd on which a lock is held (if not -1) */\n\t\t\tchar *fname; /*!< Name
          of lock */\n\t\t} f;\n\t}"
      item_type: struct
      name: lxc_lock
      pos:
        line_end: 47
        line_start: 36
        source_file: /src/lxc/src/lxc/lxclock.h
    typedefs: []
    union: []
- function_names:
  - default_cleanup_handler
  source_file: /src/lxc/src/lxc/mainloop.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_MAINLOOP_ERROR
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/lxc/src/lxc/mainloop.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LXC_MAINLOOP_CONTINUE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/lxc/src/lxc/mainloop.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LXC_MAINLOOP_CLOSE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/lxc/src/lxc/mainloop.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LXC_MAINLOOP_DISARM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/lxc/mainloop.h
      type_or_value: '2'
    structs:
    - fields:
      - name: type
        type: async_descr_t
      - name: handlers
        type: struct list_head
      item_type: struct
      name: lxc_async_descr
      pos:
        line_end: 32
        line_start: 23
        source_file: /src/lxc/src/lxc/mainloop.h
    typedefs:
    - item_type: typedef
      name: "(*lxc_mainloop_callback_t)(int fd, uint32_t event, void *data,\n\t\t\t\t
        \      struct lxc_async_descr *descr)"
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/lxc/src/lxc/mainloop.h
      type: int
    - item_type: typedef
      name: (*lxc_mainloop_cleanup_t)(int fd, void *data)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/lxc/src/lxc/mainloop.h
      type: int
    union: []
- function_names:
  - openat2
  source_file: /src/lxc/src/lxc/open_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RESOLVE_NO_XDEV
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: RESOLVE_NO_MAGICLINKS
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: RESOLVE_NO_SYMLINKS
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: RESOLVE_BENEATH
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: '0x08 '
    - item_type: preproc_def
      name: RESOLVE_IN_ROOT
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: PROTECT_LOOKUP_BENEATH
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (RESOLVE_BENEATH | RESOLVE_NO_XDEV | RESOLVE_NO_MAGICLINKS |
        RESOLVE_NO_SYMLINKS)
    - item_type: preproc_def
      name: PROTECT_LOOKUP_BENEATH_WITH_SYMLINKS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_BENEATH & ~RESOLVE_NO_SYMLINKS)
    - item_type: preproc_def
      name: PROTECT_LOOKUP_BENEATH_WITH_MAGICLINKS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_BENEATH & ~(RESOLVE_NO_SYMLINKS | RESOLVE_NO_MAGICLINKS))
    - item_type: preproc_def
      name: PROTECT_LOOKUP_BENEATH_XDEV
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_BENEATH & ~RESOLVE_NO_XDEV)
    - item_type: preproc_def
      name: PROTECT_LOOKUP_ABSOLUTE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_BENEATH & ~RESOLVE_BENEATH)
    - item_type: preproc_def
      name: PROTECT_LOOKUP_ABSOLUTE_WITH_SYMLINKS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_ABSOLUTE & ~RESOLVE_NO_SYMLINKS)
    - item_type: preproc_def
      name: PROTECT_LOOKUP_ABSOLUTE_WITH_MAGICLINKS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_ABSOLUTE & ~(RESOLVE_NO_SYMLINKS | RESOLVE_NO_MAGICLINKS))
    - item_type: preproc_def
      name: PROTECT_LOOKUP_ABSOLUTE_XDEV
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_ABSOLUTE & ~RESOLVE_NO_XDEV)
    - item_type: preproc_def
      name: PROTECT_LOOKUP_ABSOLUTE_XDEV_SYMLINKS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_LOOKUP_ABSOLUTE_WITH_SYMLINKS & ~RESOLVE_NO_XDEV)
    - item_type: preproc_def
      name: PROTECT_OPATH_FILE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (O_NOFOLLOW | O_PATH | O_CLOEXEC)
    - item_type: preproc_def
      name: PROTECT_OPATH_DIRECTORY
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_OPATH_FILE | O_DIRECTORY)
    - item_type: preproc_def
      name: PROTECT_OPEN_WITH_TRAILING_SYMLINKS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (O_CLOEXEC | O_NOCTTY | O_RDONLY)
    - item_type: preproc_def
      name: PROTECT_OPEN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_OPEN_WITH_TRAILING_SYMLINKS | O_NOFOLLOW)
    - item_type: preproc_def
      name: PROTECT_OPEN_W_WITH_TRAILING_SYMLINKS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (O_CLOEXEC | O_NOCTTY | O_WRONLY)
    - item_type: preproc_def
      name: PROTECT_OPEN_W
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (PROTECT_OPEN_W_WITH_TRAILING_SYMLINKS | O_NOFOLLOW)
    - item_type: preproc_def
      name: PROTECT_OPEN_RW
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/lxc/src/lxc/open_utils.h
      type_or_value: (O_CLOEXEC | O_NOCTTY | O_RDWR | O_NOFOLLOW)
    structs:
    - fields:
      - name: flags
        type: __u64
      - name: mode
        type: __u64
      - name: resolve
        type: __u64
      item_type: struct
      name: open_how
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/lxc/src/lxc/open_utils.h
    typedefs: []
    union: []
- function_names:
  - likely
  - unlikely
  - __must_check::__must_check_overflow
  - is_signed_type
  - __type_half_max
  - type_max
  - type_min
  - is_non_negative
  - is_negative
  - check_add_overflow
  - check_sub_overflow
  - check_mul_overflow
  - __unsigned_add_overflow
  - __unsigned_sub_overflow
  - __unsigned_mul_overflow
  - __signed_add_overflow
  - __signed_sub_overflow
  - __signed_mul_overflow
  - check_add_overflow
  - check_sub_overflow
  - check_mul_overflow
  - __access_r
  - __access_r_nosize
  - __access_w
  - __access_rw
  - __same_type
  - __compiletime_assert
  - _compiletime_assert
  - compiletime_assert
  - BUILD_BUG_ON_MSG
  source_file: /src/lxc/src/lxc/compiler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: thread_local
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: _Thread_local
    - item_type: preproc_def
      name: thread_local
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __thread
    - item_type: preproc_def
      name: __fallthrough
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__((__fallthrough__))
    - item_type: preproc_def
      name: COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __must_check
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__((__warn_unused_result__))
    - item_type: preproc_def
      name: __noreturn
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: _Noreturn
    - item_type: preproc_def
      name: __noreturn
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: __hot
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__((hot))
    - item_type: preproc_def
      name: __returns_twice
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__((returns_twice))
    - item_type: preproc_def
      name: __lxc_unused
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__ ((unused))
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__((visibility("hidden")))
    - item_type: preproc_def
      name: __public
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/lxc/src/lxc/compiler.h
      type_or_value: __attribute__((visibility("default")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_ERR_VALUE
  - ERR_PTR
  - PTR_ERR
  - IS_ERR
  - IS_ERR_OR_NULL
  - ERR_CAST
  - PTR_RET
  - ERRNO_IS_NOT_SUPPORTED
  source_file: /src/lxc/src/lxc/error_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ERRNO
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/lxc/src/lxc/error_utils.h
      type_or_value: '4095'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/confile.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_CONFIG_MEMBERS
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/lxc/src/lxc/confile.h
      type_or_value: "char *name;        \\\n\tbool strict;       \\\n\tconfig_set_cb
        set; \\\n\tconfig_get_cb get; \\\n\tconfig_clr_cb clr"
    - item_type: preproc_def
      name: LXC_ARCH_UNCHANGED
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/lxc/src/lxc/confile.h
      type_or_value: 0xffffffffL
    structs:
    - fields: []
      item_type: struct
      name: lxc_config_t
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/lxc/src/lxc/confile.h
    - fields:
      - name: '*key'
        type: char
      - name: '*val'
        type: char
      item_type: struct
      name: new_config_item
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/lxc/src/lxc/confile.h
    typedefs:
    - item_type: typedef
      name: "(*config_set_cb)(const char *key, const char *value,\n\t\t\t     struct
        lxc_conf *conf, void *data)"
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/lxc/confile.h
      type: int
    - item_type: typedef
      name: "(*config_get_cb)(const char *key, char *value, int inlen,\n\t\t\t     struct
        lxc_conf *conf, void *data)"
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/confile.h
      type: int
    - item_type: typedef
      name: "(*config_clr_cb)(const char *key, struct lxc_conf *conf,\n\t\t\t     void
        *data)"
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/lxc/confile.h
      type: int
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/idmap_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _recursive_rmdir
  - is_native_overlayfs
  - lxc_rmdir_onedev
  - get_u16
  - lxc_mkdir_p
  - get_rundir
  - wait_for_pid
  - wait_for_pidfd
  - lxc_wait_for_pid_status
  - wait_exited
  - do_sha1_hash
  - sha1sum_file
  - lxc_popen
  - lxc_pclose
  - run_buffer
  - run_script_argv
  - run_script
  - randseed
  - get_ns_uid
  - get_ns_gid
  - dir_exists
  - fnv_64a_buf
  - is_shared_mountpoint
  - detect_shared_rootfs
  - try_switch_to_ns
  - detect_ramfs_rootfs
  - on_path
  - get_template_path
  - get_nextpath
  - is_subdir
  - check_symlink
  - open_if_safe
  - open_without_symlink
  - __safe_mount_beneath_at
  - safe_mount_beneath
  - safe_mount_beneath_at
  - safe_mount
  - open_devnull
  - set_stdfds
  - null_stdfds
  - task_blocks_signal
  - lxc_preserve_ns
  - lxc_switch_uid_gid
  - lxc_drop_groups
  - lxc_setgroups
  - lxc_get_unused_loop_dev_legacy
  - lxc_get_unused_loop_dev
  - lxc_prepare_loop_dev
  - lxc_unstack_mountpoint
  - run_command_internal
  - run_command
  - run_command_status
  - lxc_nic_exists
  - lxc_find_next_power2
  - process_dead
  - lxc_set_death_signal
  - lxc_rm_rf
  - lxc_can_use_pidfd
  - fix_stdio_permissions
  - print_r
  - get_fssize
  source_file: /src/lxc/src/lxc/utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/lxc/src/lxc/utils.c
      type_or_value: '1'
    - item_type: preproc_def
      name: O_PATH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/lxc/src/lxc/utils.c
      type_or_value: '010000000'
    - item_type: preproc_def
      name: O_NOFOLLOW
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/lxc/src/lxc/utils.c
      type_or_value: '00400000'
    - item_type: preproc_def
      name: __PROC_STATUS_LEN
      pos:
        line_end: 1386
        line_start: 1385
        source_file: /src/lxc/src/lxc/utils.c
      type_or_value: (6 + INTTYPE_TO_STRLEN(pid_t) + 7 + 1)
    - item_type: preproc_def
      name: __NS_PATH_LEN
      pos:
        line_end: 1429
        line_start: 1428
        source_file: /src/lxc/src/lxc/utils.c
      type_or_value: '50'
    - item_type: preproc_def
      name: __LXC_SYS_CLASS_NET_LEN
      pos:
        line_end: 1756
        line_start: 1755
        source_file: /src/lxc/src/lxc/utils.c
      type_or_value: 15 + IFNAMSIZ + 1
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/parse.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*lxc_dir_cb)(const char *name, const char *directory,\n\t\t\t  const
        char *file, void *data)"
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/lxc/src/lxc/parse.h
      type: int
    - item_type: typedef
      name: (*lxc_file_cb)(char *buffer, void *data)
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/lxc/src/lxc/parse.h
      type: int
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/initutils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_VG
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/lxc/initutils.h
      type_or_value: '"lxc"'
    - item_type: preproc_def
      name: DEFAULT_THIN_POOL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/initutils.h
      type_or_value: '"lxc"'
    - item_type: preproc_def
      name: DEFAULT_ZFSROOT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/initutils.h
      type_or_value: '"lxc"'
    - item_type: preproc_def
      name: DEFAULT_RBDPOOL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/initutils.h
      type_or_value: '"lxc"'
    - item_type: preproc_def
      name: DEFAULT_RBDUSER
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/lxc/initutils.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: PR_SET_MM
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/lxc/initutils.h
      type_or_value: '35'
    - item_type: preproc_def
      name: PR_SET_MM_MAP
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/lxc/initutils.h
      type_or_value: '14'
    structs:
    - fields:
      - name: start_code
        type: uint64_t
      - name: end_code
        type: uint64_t
      - name: start_data
        type: uint64_t
      - name: end_data
        type: uint64_t
      - name: start_brk
        type: uint64_t
      - name: brk
        type: uint64_t
      - name: start_stack
        type: uint64_t
      - name: arg_start
        type: uint64_t
      - name: arg_end
        type: uint64_t
      - name: env_start
        type: uint64_t
      - name: env_end
        type: uint64_t
      - name: '*auxv'
        type: uint64_t
      - name: auxv_size
        type: uint32_t
      - name: exe_fd
        type: uint32_t
      item_type: struct
      name: prctl_mm_map
      pos:
        line_end: 51
        line_start: 36
        source_file: /src/lxc/src/lxc/initutils.h
    typedefs: []
    union: []
- function_names:
  - NLMSG_TAIL
  - NLA_DATA
  - NLA_NEXT_ATTR
  source_file: /src/lxc/src/lxc/nl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/lxc/nl.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: NLMSG_GOOD_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/lxc/nl.h
      type_or_value: (2*PAGE_SIZE)
    - item_type: preproc_def
      name: NL_HANDLER_INIT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/lxc/nl.h
      type_or_value: '{ .fd = -EBADF }'
    structs:
    - fields:
      - name: fd
        type: int
      - name: seq
        type: int
      - name: local
        type: struct sockaddr_nl
      - name: peer
        type: struct sockaddr_nl
      item_type: struct
      name: nl_handler
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/lxc/src/lxc/nl.h
    - fields:
      - name: '*nlmsghdr'
        type: struct nlmsghdr
      - name: cap
        type: ssize_t
      item_type: struct
      name: nlmsg
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/lxc/src/lxc/nl.h
    typedefs: []
    union: []
- function_names:
  - disarm_handler
  - delete_handler
  - cleanup_handler
  - __lxc_mainloop_io_uring
  - __io_uring_arm
  - __io_uring_disarm
  - __io_uring_open
  - __io_uring_open
  - __io_uring_arm
  - __io_uring_disarm
  - msec_to_ts
  - __lxc_mainloop_io_uring
  - __lxc_mainloop_epoll
  - lxc_mainloop
  - __lxc_mainloop_add_handler_events
  - lxc_mainloop_add_handler_events
  - lxc_mainloop_add_handler
  - lxc_mainloop_add_oneshot_handler
  - lxc_mainloop_del_handler
  - __epoll_open
  - lxc_mainloop_open
  - lxc_mainloop_close
  source_file: /src/lxc/src/lxc/mainloop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CANCEL_RECEIVED
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/lxc/mainloop.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CANCEL_SUCCESS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/mainloop.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: MAX_EVENTS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/lxc/mainloop.c
      type_or_value: '10'
    structs:
    - fields:
      - name: fd
        type: int
      - name: '*data'
        type: void
      - name: callback
        type: lxc_mainloop_callback_t
      - name: cleanup
        type: lxc_mainloop_cleanup_t
      - name: '*name'
        type: char
      - name: flags
        type: unsigned int
      - name: head
        type: struct list_head
      item_type: struct
      name: mainloop_handler
      pos:
        line_end: 34
        line_start: 26
        source_file: /src/lxc/src/lxc/mainloop.c
    typedefs: []
    union: []
- function_names:
  - lxc_caps_down
  - lxc_caps_up
  - lxc_ambient_caps_up
  - lxc_ambient_caps_down
  - lxc_caps_init
  - __caps_last_cap
  - lxc_caps_last_cap
  - lxc_cap_is_set
  - lxc_file_cap_is_set
  - lxc_proc_cap_is_set
  source_file: /src/lxc/src/lxc/caps.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - define_cleanup_function
  - call_cleaner
  - close_prot_errno_disarm
  - close_prot_errno_move
  - close_prot_errno_disarm_function
  - free_disarm
  - free_disarm_function
  - free_string_list
  - memdup
  - zalloc
  - free_move_ptr
  - close_move_fd
  - close_equal
  - free_equal
  source_file: /src/lxc/src/lxc/memory_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __do_close
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/lxc/src/lxc/memory_utils.h
      type_or_value: call_cleaner(close_prot_errno_disarm)
    - item_type: preproc_def
      name: __do_fclose
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/lxc/src/lxc/memory_utils.h
      type_or_value: call_cleaner(fclose)
    - item_type: preproc_def
      name: __do_closedir
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/lxc/src/lxc/memory_utils.h
      type_or_value: call_cleaner(closedir)
    - item_type: preproc_def
      name: __do_free
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/lxc/src/lxc/memory_utils.h
      type_or_value: call_cleaner(free_disarm)
    - item_type: preproc_def
      name: __do_free_string_list
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/lxc/src/lxc/memory_utils.h
      type_or_value: call_cleaner(free_string_list)
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_lxcapi_get_config_path
  - config_file_exists
  - ongoing_create
  - create_partial
  - remove_partial
  - lxc_container_free
  - lxc_container_get
  - lxc_container_put
  - do_lxcapi_is_defined
  - WRAP_API
  - WRAP_API_1
  - WRAP_API_2
  - WRAP_API_3
  - WRAP_API_5
  - WRAP_API_6
  - do_lxcapi_state
  - is_stopped
  - do_lxcapi_is_running
  - do_lxcapi_freeze
  - do_lxcapi_unfreeze
  - do_lxcapi_console_getfd
  - lxcapi_console
  - do_lxcapi_console_log
  - do_lxcapi_init_pid
  - do_lxcapi_init_pidfd
  - do_lxcapi_devpts_fd
  - load_config_locked
  - do_lxcapi_load_config
  - do_lxcapi_want_daemonize
  - do_lxcapi_want_close_all_fds
  - do_lxcapi_wait
  - am_single_threaded
  - free_init_cmd
  - lxc_rcv_status
  - wait_on_daemonized_start
  - do_lxcapi_start
  - lxcapi_start
  - lxcapi_startl
  - do_lxcapi_stop
  - do_create_container_dir
  - create_container_dir
  - do_storage_create
  - lxctemplatefilename
  - create_run_template
  - prepend_lxc_header
  - lxcapi_clear_config
  - do_lxcapi_clear_config
  - __lxcapi_create
  - do_lxcapi_create
  - do_lxcapi_reboot
  - do_lxcapi_reboot2
  - do_lxcapi_shutdown
  - lxcapi_createl
  - do_clear_unexp_config_line
  - do_lxcapi_clear_config_item
  - enter_net_ns
  - string_cmp
  - container_cmp
  - add_to_array
  - add_to_clist
  - get_from_array
  - array_contains
  - do_lxcapi_get_interfaces
  - do_lxcapi_get_ips
  - do_lxcapi_get_config_item
  - do_lxcapi_get_running_config_item
  - do_lxcapi_get_keys
  - do_lxcapi_save_config
  - mod_rdep
  - mod_all_rdeps
  - has_fs_snapshots
  - has_snapshots
  - do_destroy_container
  - lxc_rmdir_onedev_wrapper
  - lxc_unlink_exec_wrapper
  - container_destroy
  - do_lxcapi_destroy
  - do_lxcapi_destroy_with_snapshots
  - lxc_set_config_item_locked
  - do_set_config_item_locked
  - do_lxcapi_set_config_item
  - lxcapi_config_file_name
  - lxcapi_get_config_path
  - set_config_filename
  - do_lxcapi_set_config_path
  - do_lxcapi_set_cgroup_item
  - do_lxcapi_get_cgroup_item
  - lxc_get_global_config_item
  - lxc_get_version
  - copy_file
  - copyhooks
  - copy_fstab
  - copy_rdepends
  - add_rdepends
  - should_default_to_snapshot
  - copy_storage
  - clone_update_rootfs
  - clone_update_rootfs_wrapper
  - create_file_dirname
  - do_lxcapi_clone
  - lxcapi_clone
  - do_lxcapi_rename
  - lxcapi_attach
  - do_lxcapi_attach_run_wait
  - lxcapi_attach_run_wait
  - get_next_index
  - get_snappath_dir
  - do_lxcapi_snapshot
  - lxcsnap_free
  - get_snapcomment_path
  - get_timestamp
  - do_lxcapi_snapshot_list
  - do_lxcapi_snapshot_restore
  - do_snapshot_destroy
  - remove_all_snapshots
  - do_lxcapi_snapshot_destroy
  - do_lxcapi_snapshot_destroy_all
  - do_lxcapi_may_control
  - do_add_remove_node
  - add_remove_device_node
  - do_lxcapi_add_device_node
  - do_lxcapi_remove_device_node
  - do_lxcapi_attach_interface
  - do_lxcapi_detach_interface
  - do_lxcapi_migrate
  - do_lxcapi_checkpoint
  - do_lxcapi_restore
  - create_mount_target
  - do_lxcapi_mount
  - do_lxcapi_umount
  - lxcapi_attach_run_waitl
  - do_lxcapi_seccomp_notify_fd
  - do_lxcapi_seccomp_notify_fd_active
  - do_lxcapi_set_timeout
  - lxc_container_new
  - lxc_get_wait_states
  - list_defined_containers
  - list_active_containers
  - list_all_containers
  - lxc_config_item_is_supported
  - lxc_has_api_extension
  source_file: /src/lxc/src/lxc/lxccontainer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*c0'
        type: struct lxc_container
      - name: '*c1'
        type: struct lxc_container
      - name: flags
        type: int
      - name: '**hookargs'
        type: char
      item_type: struct
      name: clone_update_data
      pos:
        line_end: 3585
        line_start: 3580
        source_file: /src/lxc/src/lxc/lxccontainer.c
    typedefs: []
    union: []
- function_names:
  - inherit_fds
  - container_uses_namespace
  source_file: /src/lxc/src/lxc/start.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sigfd
        type: int
      - name: nsfd[LXC_NS_MAX]
        type: int
      - name: data_sock[2]
        type: int
      - name: state_socket_pair[2]
        type: int
      - name: sync_sock[2]
        type: int
      - name: '*name'
        type: char
      - name: '*lxcpath'
        type: char
      - name: am_root
        type: bool
      - name: daemonize
        type: bool
      - name: pid
        type: pid_t
      - name: pidfd
        type: int
      - name: transient_pid
        type: pid_t
      - name: monitor_pid
        type: pid_t
      - name: monitor_status_fd
        type: int
      - name: init_died
        type: bool
      - name: oldmask
        type: sigset_t
      - name: '*conf'
        type: struct lxc_conf
      - name: '*ops'
        type: struct lxc_operations
      - name: '*cgroup_data'
        type: void
      - name: '*data'
        type: void
      - name: state
        type: lxc_state_t
      - name: exit_status
        type: int
      - name: '*cgroup_ops'
        type: struct cgroup_ops
      - name: keep_fds[3]
        type: int
      - name: '*lsm_ops'
        type: struct lsm_ops
      - name: nsfd_paths[LXC_NS_MAX + 1][LXC_EXPOSE_NAMESPACE_LEN]
        type: char
      - name: hook_argc
        type: lxc_namespace_t
      - name: '*hook_argv[LXC_NS_MAX + 1]'
        type: char
      item_type: struct
      name: lxc_handler
      pos:
        line_end: 136
        line_start: 20
        source_file: /src/lxc/src/lxc/start.h
    - fields:
      - name: '*const *argv'
        type: char
      - name: quiet
        type: int
      item_type: struct
      name: execute_args
      pos:
        line_end: 141
        line_start: 138
        source_file: /src/lxc/src/lxc/start.h
    - fields:
      - name: (*start)(struct lxc_handler *, void *)
        type: int
      - name: (*post_start)(struct lxc_handler *, void *)
        type: int
      item_type: struct
      name: lxc_operations
      pos:
        line_end: 146
        line_start: 143
        source_file: /src/lxc/src/lxc/start.h
    typedefs: []
    union: []
- function_names:
  - write_id_mapping
  - idmaptool_on_path_and_privileged
  - lxc_map_ids_exec_wrapper
  - lxc_map_ids
  - list_for_each_entry
  - list_for_each_entry
  - mapped_hostid
  - find_unmapped_nsid
  - find_mapped_nsid_entry
  - mapped_nsid_add
  - find_mapped_hostid_entry
  - list_for_each_entry
  - mapped_hostid_add
  source_file: /src/lxc/src/lxc/idmap_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_storage_prepare
  - lxc_storage_put
  - lxc_rootfs_init
  - lxc_rootfs_prepare_parent
  - add_shmount_to_list
  - lxc_mount_auto_mounts
  - setup_utsname
  - lxc_setup_dev_symlinks
  - append_ttyname
  - open_ttymnt_at
  - lxc_setup_ttys
  - lxc_allocate_ttys
  - lxc_delete_tty
  - __lxc_send_ttys_to_parent
  - lxc_create_ttys
  - lxc_send_ttys_to_parent
  - mount_autodev
  - lxc_fill_autodev
  - lxc_mount_rootfs
  - lxc_rootfs_overmounted
  - lxc_chroot
  - lxc_pivot_root
  - lxc_setup_rootfs_switch_root
  - lxc_recv_devpts_from_child
  - lxc_setup_devpts_child
  - lxc_finish_devpts_child
  - lxc_send_devpts_to_parent
  - setup_personality
  - bind_mount_console
  - lxc_setup_dev_console
  - lxc_setup_ttydir_console
  - lxc_setup_console
  - parse_mntopt
  - parse_mntopts_legacy
  - parse_vfs_attr
  - parse_mount_attrs
  - null_endofword
  - get_field
  - mount_entry
  - parse_lxc_mount_attrs
  - mount_entry_create_dir_file
  - mount_entry_on_generic
  - mount_entry_on_systemfs
  - mount_entry_on_absolute_rootfs
  - mount_entry_on_relative_rootfs
  - mount_file_entries
  - __auto_endmntent__
  - setup_mount_fstab
  - make_anonymous_mount_file
  - list_for_each_entry
  - setup_mount_entries
  - __lxc_idmapped_mounts_child
  - lxc_idmapped_mounts_child
  - parse_cap
  - has_cap
  - capabilities_deny
  - capabilities_allow
  - parse_resource
  - setup_resource_limits
  - setup_sysctl_parameters
  - setup_proc_filesystem
  - lxc_conf_init
  - get_mapped_rootid
  - lxc_transient_proc
  - lxc_create_tmp_proc_mount
  - tmp_proc_unmount
  - turn_into_dependent_mounts
  - lxc_setup_rootfs_prepare_root
  - verify_start_hooks
  - lxc_setup_boot_id
  - lxc_setup_keyring
  - lxc_rootfs_prepare_child
  - lxc_idmapped_mounts_parent
  - lxc_recv_ttys_from_child
  - lxc_send_console_to_parent
  - lxc_recv_console_from_child
  - lxc_sync_fds_parent
  - lxc_sync_fds_child
  - setup_capabilities
  - make_shmount_dependent_mount
  - lxc_setup
  - run_lxc_hooks
  - lxc_clear_config_caps
  - lxc_free_idmap
  - list_for_each_entry_safe
  - __lxc_free_idmap
  - lxc_clear_idmaps
  - lxc_clear_namespace
  - lxc_clear_cgroups
  - list_for_each_entry_safe
  - lxc_clear_cgroups_devices
  - lxc_clear_limits
  - lxc_clear_sysctls
  - lxc_clear_procs
  - lxc_clear_groups
  - lxc_clear_environment
  - list_for_each_entry_safe
  - lxc_clear_mount_entries
  - lxc_clear_automounts
  - lxc_clear_hooks
  - lxc_clear_apparmor_raw
  - lxc_conf_free
  - run_userns_fn
  - get_minimal_idmap
  - userns_exec_1
  - userns_exec_minimal
  - userns_exec_full
  - add_idmap_entry
  - userns_exec_mapped_root
  - getuname
  - getgname
  - suggest_default_idmap
  - lxc_set_environment
  - list_for_each_entry
  source_file: /src/lxc/src/lxc/conf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __do_endmntent
      pos:
        line_end: 2561
        line_start: 2560
        source_file: /src/lxc/src/lxc/conf.c
      type_or_value: __attribute__((__cleanup__(__auto_endmntent__)))
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: clear
        type: int
      - name: recursive
        type: bool
      - name: flag
        type: __u64
      - name: legacy_flag
        type: int
      item_type: struct
      name: mount_opt
      pos:
        line_end: 119
        line_start: 113
        source_file: /src/lxc/src/lxc/conf.c
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: __u32
      item_type: struct
      name: caps_opt
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/lxc/src/lxc/conf.c
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: limit_opt
      pos:
        line_end: 129
        line_start: 126
        source_file: /src/lxc/src/lxc/conf.c
    - fields:
      - name: match_mask
        type: int
      - name: match_flag
        type: int
      - name: '*source'
        type: char
      - name: '*destination'
        type: char
      - name: '*fstype'
        type: char
      - name: flags
        type: unsigned long
      - name: '*options'
        type: char
      - name: requires_cap_net_admin
        type: bool
      item_type: struct
      name: "default_mounts[] = {\n\t\t/* Read-only bind-mounting... In older kernels,
        doing that\n\t\t * required to do one MS_BIND mount and then\n\t\t * MS_REMOUNT|MS_RDONLY
        the same one. According to mount(2)\n\t\t * manpage, MS_BIND honors MS_RDONLY
        from kernel 2.6.26\n\t\t * onwards. However, this apparently does not work
        on kernel\n\t\t * 3.8. Unfortunately, on that very same kernel, doing the
        same\n\t\t * trick as above doesn't seem to work either, there one needs\n\t\t
        * to ALSO specify MS_BIND for the remount, otherwise the\n\t\t * entire fs
        is remounted read-only or the mount fails because\n\t\t * it's busy...  MS_REMOUNT|MS_BIND|MS_RDONLY
        seems to work for\n\t\t * kernels as low as 2.6.32...\n\t\t */\n\t\t{ LXC_AUTO_PROC_MASK,
        LXC_AUTO_PROC_MIXED, \"proc\",                                           \"%r/proc\",
        \                   \"proc\",  MS_NODEV|MS_NOEXEC|MS_NOSUID,                    NULL,
        false },\n\t\t/* proc/tty is used as a temporary placeholder for proc/sys/net
        which we'll move back in a few steps */\n\t\t{ LXC_AUTO_PROC_MASK, LXC_AUTO_PROC_MIXED,
        \"%r/proc/sys/net\",                                \"%r/proc/tty\",                NULL,
        \   MS_BIND,                                         NULL, true, },\n\t\t{
        LXC_AUTO_PROC_MASK, LXC_AUTO_PROC_MIXED, \"%r/proc/sys\",                                    \"%r/proc/sys\",
        \               NULL,    MS_BIND,                                         NULL,
        false },\n\t\t{ LXC_AUTO_PROC_MASK, LXC_AUTO_PROC_MIXED, NULL,                                             \"%r/proc/sys\",
        \               NULL,    MS_REMOUNT|MS_BIND|MS_RDONLY,                    NULL,
        false },\n\t\t{ LXC_AUTO_PROC_MASK, LXC_AUTO_PROC_MIXED, \"%r/proc/tty\",
        \                                   \"%r/proc/sys/net\",            NULL,
        \   MS_MOVE,                                         NULL, true  },\n\t\t{
        LXC_AUTO_PROC_MASK, LXC_AUTO_PROC_MIXED, \"%r/proc/sysrq-trigger\",                          \"%r/proc/sysrq-trigger\",
        \     NULL,    MS_BIND,                                         NULL, false
        },\n\t\t{ LXC_AUTO_PROC_MASK, LXC_AUTO_PROC_MIXED, NULL,                                             \"%r/proc/sysrq-trigger\",
        \     NULL,    MS_REMOUNT|MS_BIND|MS_RDONLY,                    NULL, false
        },\n\t\t{ LXC_AUTO_PROC_MASK, LXC_AUTO_PROC_RW,    \"proc\",                                           \"%r/proc\",
        \                   \"proc\",  MS_NODEV|MS_NOEXEC|MS_NOSUID,                    NULL,
        false },\n\t\t{ LXC_AUTO_SYS_MASK,  LXC_AUTO_SYS_RW,     \"sysfs\",                                          \"%r/sys\",
        \                    \"sysfs\", 0,                                               NULL,
        false },\n\t\t{ LXC_AUTO_SYS_MASK,  LXC_AUTO_SYS_RO,     \"sysfs\",                                          \"%r/sys\",
        \                    \"sysfs\", MS_RDONLY,                                       NULL,
        false },\n\t\t/* /proc/sys is used as a temporary staging directory for the
        read-write sysfs mount and unmounted after binding net */\n\t\t{ LXC_AUTO_SYS_MASK,
        \ LXC_AUTO_SYS_MIXED,  \"sysfs\",                                          \"%r/proc/sys\",
        \               \"sysfs\", MS_NOSUID|MS_NODEV|MS_NOEXEC,                    NULL,
        false },\n\t\t{ LXC_AUTO_SYS_MASK,  LXC_AUTO_SYS_MIXED,  \"sysfs\",                                          \"%r/sys\",
        \                    \"sysfs\", MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC,          NULL,
        false },\n\t\t{ LXC_AUTO_SYS_MASK,  LXC_AUTO_SYS_MIXED,  \"%r/proc/sys/devices/virtual/net\",
        \               \"%r/sys/devices/virtual/net\", NULL,    MS_BIND,                                         NULL,
        false },\n\t\t{ LXC_AUTO_SYS_MASK,  LXC_AUTO_SYS_MIXED,  \"%r/proc/sys\",
        \                                   NULL,                         NULL,    0,
        \                                              NULL, false },\n\t\t{ 0,                  0,
        \                  NULL,                                             NULL,
        \                        NULL,    0,                                               NULL,
        false }\n\t}"
      pos:
        line_end: 482
        line_start: 473
        source_file: /src/lxc/src/lxc/conf.c
    - fields:
      - name: '*oldpath'
        type: char
      - name: '*name'
        type: char
      item_type: struct
      name: dev_symlinks
      pos:
        line_end: 678
        line_start: 675
        source_file: /src/lxc/src/lxc/conf.c
    - fields:
      - name: '*name'
        type: char
      - name: mode
        type: mode_t
      - name: maj
        type: int
      - name: min
        type: int
      item_type: struct
      name: lxc_device_node
      pos:
        line_end: 1075
        line_start: 1070
        source_file: /src/lxc/src/lxc/conf.c
    - fields:
      - name: (*fn)(void *)
        type: int
      - name: '*fn_name'
        type: char
      - name: '*arg'
        type: void
      - name: p[2]
        type: int
      item_type: struct
      name: userns_fn_data
      pos:
        line_end: 4398
        line_start: 4393
        source_file: /src/lxc/src/lxc/conf.c
    typedefs: []
    union: []
- function_names:
  - lxc_log_priority_to_syslog
  - lxc_log_get_container_name
  - lxc_log_get_fd
  - lxc_log_get_va_msg
  - log_append_syslog
  - log_append_stderr
  - lxc_unix_epoch_to_utc
  - log_append_logfile
  - log_append_dlog
  - build_dir
  - log_open
  - build_log_path
  - __lxc_log_set_file
  - _lxc_log_set_file
  - lxc_log_init
  - lxc_log_close
  - lxc_log_syslog
  - lxc_log_syslog_enable
  - lxc_log_syslog_disable
  - lxc_log_set_level
  - lxc_log_get_level
  - lxc_log_has_valid_level
  - lxc_log_set_file
  - lxc_log_get_file
  - lxc_log_set_prefix
  - lxc_log_get_prefix
  - lxc_log_options_no_override
  source_file: /src/lxc/src/lxc/log.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOG_TAG
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/lxc/log.c
      type_or_value: '"LXC"'
    - item_type: preproc_def
      name: LXC_LOG_TIME_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/lxc/src/lxc/log.c
      type_or_value: ((INTTYPE_TO_STRLEN(uint64_t)) * 2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_abstract_unix_send_two_fds
  - lxc_abstract_unix_recv_two_fds
  - put_unix_fds
  source_file: /src/lxc/src/lxc/af_unix.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KERNEL_SCM_MAX_FD
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: '253'
    - item_type: preproc_def
      name: UNIX_FDS_ACCEPT_EXACT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: '((__u32)(1 << 0)) '
    - item_type: preproc_def
      name: UNIX_FDS_ACCEPT_LESS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: ((__u32)(1 << 1))
    - item_type: preproc_def
      name: UNIX_FDS_ACCEPT_MORE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: '((__u32)(1 << 2)) '
    - item_type: preproc_def
      name: UNIX_FDS_ACCEPT_NONE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: ((__u32)(1 << 3))
    - item_type: preproc_def
      name: UNIX_FDS_ACCEPT_MASK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: (UNIX_FDS_ACCEPT_EXACT | UNIX_FDS_ACCEPT_LESS | UNIX_FDS_ACCEPT_MORE
        | UNIX_FDS_ACCEPT_NONE)
    - item_type: preproc_def
      name: UNIX_FDS_RECEIVED_EXACT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: ((__u32)(1 << 16))
    - item_type: preproc_def
      name: UNIX_FDS_RECEIVED_LESS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: ((__u32)(1 << 17))
    - item_type: preproc_def
      name: UNIX_FDS_RECEIVED_MORE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: ((__u32)(1 << 18))
    - item_type: preproc_def
      name: UNIX_FDS_RECEIVED_NONE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/lxc/src/lxc/af_unix.h
      type_or_value: ((__u32)(1 << 19))
    structs:
    - fields:
      - name: fd_count_max
        type: __u32
      - name: fd_count_ret
        type: __u32
      - name: flags
        type: __u32
      - name: fd[KERNEL_SCM_MAX_FD]
        type: __s32
      item_type: struct
      name: unix_fds
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/lxc/src/lxc/af_unix.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/error.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_CLONE_ERROR
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/lxc/src/lxc/error.h
      type_or_value: '"Failed to clone a new set of namespaces"'
    - item_type: preproc_def
      name: LXC_UNPRIV_EOPNOTSUPP
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/lxc/src/lxc/error.h
      type_or_value: '"the requested function %s is not currently supported with unprivileged
        containers"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ptr_to_u64
  - u64_to_ptr
  - lxc_clone3
  - execveat
  - lxc_raw_getpid
  - lxc_raw_gettid
  - signal_name
  source_file: /src/lxc/src/lxc/process_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CSIGNAL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x000000ff '
    - item_type: preproc_def
      name: CLONE_VM
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: CLONE_FS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: CLONE_FILES
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: CLONE_SIGHAND
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: CLONE_PIDFD
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: CLONE_PTRACE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: CLONE_VFORK
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: CLONE_PARENT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00008000 '
    - item_type: preproc_def
      name: CLONE_THREAD
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: CLONE_NEWNS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: CLONE_SYSVSEM
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00040000 '
    - item_type: preproc_def
      name: CLONE_SETTLS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00080000 '
    - item_type: preproc_def
      name: CLONE_PARENT_SETTID
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00100000 '
    - item_type: preproc_def
      name: CLONE_CHILD_CLEARTID
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00200000 '
    - item_type: preproc_def
      name: CLONE_DETACHED
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00400000 '
    - item_type: preproc_def
      name: CLONE_UNTRACED
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00800000 '
    - item_type: preproc_def
      name: CLONE_CHILD_SETTID
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x01000000 '
    - item_type: preproc_def
      name: CLONE_NEWCGROUP
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x02000000 '
    - item_type: preproc_def
      name: CLONE_NEWUTS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x04000000 '
    - item_type: preproc_def
      name: CLONE_NEWIPC
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x08000000 '
    - item_type: preproc_def
      name: CLONE_NEWUSER
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x10000000 '
    - item_type: preproc_def
      name: CLONE_NEWPID
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x20000000 '
    - item_type: preproc_def
      name: CLONE_NEWNET
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x40000000 '
    - item_type: preproc_def
      name: CLONE_IO
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x80000000 '
    - item_type: preproc_def
      name: CLONE_CLEAR_SIGHAND
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x100000000ULL '
    - item_type: preproc_def
      name: CLONE_INTO_CGROUP
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x200000000ULL '
    - item_type: preproc_def
      name: CLONE_NEWTIME
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: P_PIDFD
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CLONE_ARGS_SIZE_VER0
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '64 '
    - item_type: preproc_def
      name: CLONE_ARGS_SIZE_VER1
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '80 '
    - item_type: preproc_def
      name: CLONE_ARGS_SIZE_VER2
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/lxc/src/lxc/process_utils.h
      type_or_value: '88 '
    structs:
    - fields:
      - name: flags
        type: __aligned_u64
      - name: pidfd
        type: __aligned_u64
      - name: child_tid
        type: __aligned_u64
      - name: parent_tid
        type: __aligned_u64
      - name: exit_signal
        type: __aligned_u64
      - name: stack
        type: __aligned_u64
      - name: stack_size
        type: __aligned_u64
      - name: tls
        type: __aligned_u64
      - name: set_tid
        type: __aligned_u64
      - name: set_tid_size
        type: __aligned_u64
      - name: cgroup
        type: __aligned_u64
      item_type: struct
      name: clone_args
      pos:
        line_end: 179
        line_start: 167
        source_file: /src/lxc/src/lxc/process_utils.h
    typedefs: []
    union: []
- function_names:
  - sync_wait
  - sync_wake
  - __sync_barrier
  - start_sync_to_string
  - lxc_sync_barrier_parent
  - lxc_sync_barrier_child
  - lxc_sync_wake_parent
  - lxc_sync_wait_parent
  - lxc_sync_wait_child
  - lxc_sync_wake_child
  - lxc_sync_init
  - lxc_sync_fini_child
  - lxc_sync_fini_parent
  - lxc_sync_fini
  source_file: /src/lxc/src/lxc/sync.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pidfd_get_pid
  - sync_wake_pid
  - sync_wait_pid
  - sync_wake_fd
  - sync_wait_fd
  - attach_lsm
  - alloc_attach_context
  - get_personality
  - userns_setup_ids
  - userns_target_ids
  - parse_init_status
  - pidfd_setns_supported
  - get_attach_context
  - same_nsfd
  - same_ns
  - __prepare_namespaces_pidfd
  - __prepare_namespaces_nsfd
  - prepare_namespaces
  - put_namespaces
  - __attach_namespaces_pidfd
  - __attach_namespaces_nsfd
  - attach_namespaces
  - put_attach_context
  - attach_context_security_barrier
  - lxc_attach_remount_sys_proc
  - drop_capabilities
  - lxc_attach_set_environment
  - lxc_attach_getpwshell
  - fetch_seccomp
  - no_new_privs
  - put_attach_payload
  - do_attach
  - lxc_attach_terminal
  - lxc_attach_terminal_mainloop_init
  - lxc_attach_terminal_close_ptx
  - lxc_attach_terminal_close_pts
  - lxc_attach_terminal_close_peer
  - lxc_attach_terminal_close_log
  - lxc_attach
  - lxc_attach_run_command
  - lxc_attach_run_shell
  source_file: /src/lxc/src/lxc/attach.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ns_clone_flags
        type: unsigned int
      - name: attach_flags
        type: unsigned int
      - name: init_pid
        type: int
      - name: init_pidfd
        type: int
      - name: dfd_init_pid
        type: int
      - name: dfd_self_pid
        type: int
      - name: setup_ns_uid
        type: uid_t
      - name: setup_ns_gid
        type: gid_t
      - name: target_ns_uid
        type: uid_t
      - name: target_ns_gid
        type: gid_t
      - name: target_host_uid
        type: uid_t
      - name: target_host_gid
        type: uid_t
      - name: '*lsm_label'
        type: char
      - name: '*container'
        type: struct lxc_container
      - name: personality
        type: personality_t
      - name: capability_mask
        type: unsigned long long
      - name: ns_inherited
        type: int
      - name: ns_fd[LXC_NS_MAX]
        type: int
      - name: '*lsm_ops'
        type: struct lsm_ops
      - name: core_sched_cookie
        type: __u64
      item_type: struct
      name: attach_context
      pos:
        line_end: 104
        line_start: 83
        source_file: /src/lxc/src/lxc/attach.c
    - fields:
      - name: ipc_socket
        type: int
      - name: terminal_pts_fd
        type: int
      - name: '*options'
        type: lxc_attach_options_t
      - name: '*ctx'
        type: struct attach_context
      - name: exec_function
        type: lxc_attach_exec_t
      - name: '*exec_payload'
        type: void
      item_type: struct
      name: attach_payload
      pos:
        line_end: 1121
        line_start: 1114
        source_file: /src/lxc/src/lxc/attach.c
    typedefs: []
    union: []
- function_names:
  - dump_stacktrace
  - dump_stacktrace
  - lock_mutex
  - unlock_mutex
  - lxclock_name
  - lxc_new_unnamed_sem
  - lxc_newlock
  - lxclock
  - lxcunlock
  - lxc_putlock
  - process_lock
  - process_unlock
  - container_mem_lock
  - container_mem_unlock
  - container_disk_lock
  - container_disk_unlock
  source_file: /src/lxc/src/lxc/lxclock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_STACKDEPTH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/lxclock.c
      type_or_value: '25'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __S_ISTYPE
  - INTTYPE_TO_STRLEN
  - BUILD_BUG_ON
  - BUILD_BUG_ON
  - prctl_arg
  - PTR_TO_INT
  - INT_TO_PTR
  - PTR_TO_PID
  - PID_TO_PTR
  - PTR_TO_UINT64
  - PTR_TO_U64
  - UINT_TO_PTR
  - PTR_TO_USHORT
  - STRLITERALLEN
  - STRARRAYLEN
  - move_ptr
  - move_fd
  - ret_set_errno
  - ret_errno
  - ARRAY_SIZE
  - swap
  - min
  - BUILD_BUG_ON_ZERO
  - __const_hweight8
  - __const_hweight16
  - __const_hweight32
  - __const_hweight64
  - hweight8
  - hweight16
  - hweight32
  - hweight64
  - BITS_PER_TYPE
  - LAST_BIT_PER_TYPE
  - has_exact_flags
  - container_of
  - DIV_ROUND_UP
  - BITS_TO_LONGS
  - set_bit
  - clear_bit
  - is_set
  - BIT
  source_file: /src/lxc/src/lxc/macro.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_GRBUF_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2097152'
    - item_type: preproc_def
      name: INT64_FMT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '"%" PRId64'
    - item_type: preproc_def
      name: IORING_POLL_ADD_MULTI
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: IORING_CQE_F_MORE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: CAP_CHOWN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CAP_DAC_OVERRIDE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CAP_DAC_READ_SEARCH
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CAP_FOWNER
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CAP_FSETID
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CAP_KILL
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CAP_SETGID
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CAP_SETUID
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '7'
    - item_type: preproc_def
      name: CAP_SETPCAP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CAP_LINUX_IMMUTABLE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '9'
    - item_type: preproc_def
      name: CAP_NET_BIND_SERVICE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '10'
    - item_type: preproc_def
      name: CAP_NET_BROADCAST
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '11'
    - item_type: preproc_def
      name: CAP_NET_ADMIN
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '12'
    - item_type: preproc_def
      name: CAP_NET_RAW
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '13'
    - item_type: preproc_def
      name: CAP_IPC_LOCK
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '14'
    - item_type: preproc_def
      name: CAP_IPC_OWNER
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '15'
    - item_type: preproc_def
      name: CAP_SYS_MODULE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CAP_SYS_RAWIO
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '17'
    - item_type: preproc_def
      name: CAP_SYS_CHROOT
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '18'
    - item_type: preproc_def
      name: CAP_SYS_PTRACE
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '19'
    - item_type: preproc_def
      name: CAP_SYS_PACCT
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '20'
    - item_type: preproc_def
      name: CAP_SYS_ADMIN
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '21'
    - item_type: preproc_def
      name: CAP_SYS_BOOT
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '22'
    - item_type: preproc_def
      name: CAP_SYS_NICE
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '23'
    - item_type: preproc_def
      name: CAP_SYS_RESOURCE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '24'
    - item_type: preproc_def
      name: CAP_SYS_TIME
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '25'
    - item_type: preproc_def
      name: CAP_SYS_TTY_CONFIG
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '26'
    - item_type: preproc_def
      name: CAP_MKNOD
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '27'
    - item_type: preproc_def
      name: CAP_LEASE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '28'
    - item_type: preproc_def
      name: CAP_AUDIT_WRITE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '29'
    - item_type: preproc_def
      name: CAP_AUDIT_CONTROL
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '30'
    - item_type: preproc_def
      name: CAP_SETFCAP
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '31'
    - item_type: preproc_def
      name: CAP_MAC_OVERRIDE
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '32'
    - item_type: preproc_def
      name: CAP_MAC_ADMIN
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '33'
    - item_type: preproc_def
      name: CAP_SYSLOG
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '34'
    - item_type: preproc_def
      name: CAP_WAKE_ALARM
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '35'
    - item_type: preproc_def
      name: CAP_BLOCK_SUSPEND
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '36'
    - item_type: preproc_def
      name: CAP_AUDIT_READ
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '37'
    - item_type: preproc_def
      name: CAP_PERFMON
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '38'
    - item_type: preproc_def
      name: CAP_BPF
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '39'
    - item_type: preproc_def
      name: CAP_CHECKPOINT_RESTORE
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '40'
    - item_type: preproc_def
      name: PR_CAPBSET_READ
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '23'
    - item_type: preproc_def
      name: PR_CAPBSET_DROP
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '24'
    - item_type: preproc_def
      name: PR_CAP_AMBIENT
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '47'
    - item_type: preproc_def
      name: PR_CAP_AMBIENT_IS_SET
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PR_CAP_AMBIENT_RAISE
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PR_CAP_AMBIENT_LOWER
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PR_CAP_AMBIENT_CLEAR_ALL
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PR_SET_NO_NEW_PRIVS
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '38'
    - item_type: preproc_def
      name: PR_GET_NO_NEW_PRIVS
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '39'
    - item_type: preproc_def
      name: CGROUP_SUPER_MAGIC
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x27e0eb'
    - item_type: preproc_def
      name: CGROUP2_SUPER_MAGIC
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x63677270'
    - item_type: preproc_def
      name: NSFS_MAGIC
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x6e736673'
    - item_type: preproc_def
      name: OVERLAY_SUPER_MAGIC
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x794c7630'
    - item_type: preproc_def
      name: OVERLAYFS_SUPER_MAGIC
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x794c764f'
    - item_type: preproc_def
      name: LXC_LINELEN
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: LXC_IDMAPLEN
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: LXC_MAX_BUFFER
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: LXC_NAMESPACE_NAME_MAX
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '256'
    - item_type: preproc_def
      name: LXC_PROC_PID_LEN
      pos:
        line_end: 319
        line_start: 317
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (6 + INTTYPE_TO_STRLEN(pid_t) + 1)
    - item_type: preproc_def
      name: LXC_PROC_PID_FD_LEN
      pos:
        line_end: 332
        line_start: 330
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (6 + INTTYPE_TO_STRLEN(pid_t) + 4 + INTTYPE_TO_STRLEN(int) +
        1)
    - item_type: preproc_def
      name: LXC_PROC_SELF_FD_LEN
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (14 + INTTYPE_TO_STRLEN(int) + 1)
    - item_type: preproc_def
      name: LXC_PROC_STATUS_LEN
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (6 + INTTYPE_TO_STRLEN(pid_t) + 7 + 1)
    - item_type: preproc_def
      name: LXC_LSMATTRLEN
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (6 + INTTYPE_TO_STRLEN(pid_t) + 6 + 10 + 8 + 1)
    - item_type: preproc_def
      name: LXC_EXPOSE_NAMESPACE_LEN
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: "(MAX_NS_PROC_NAME + 1 + 6 + INTTYPE_TO_STRLEN(pid_t) + 4 + \\\n\t
        INTTYPE_TO_STRLEN(int) + 1)"
    - item_type: preproc_def
      name: LXC_CMD_DATA_MAX
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (PATH_MAX * 2)
    - item_type: preproc_def
      name: LO_FLAGS_AUTOCLEAR
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LOOP_CTL_GET_FREE
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x4C82'
    - item_type: preproc_def
      name: MFD_CLOEXEC
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: 0x0001U
    - item_type: preproc_def
      name: MFD_ALLOW_SEALING
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: 0x0002U
    - item_type: preproc_def
      name: MFD_NOEXEC_SEAL
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: 0x0008U
    - item_type: preproc_def
      name: MFD_EXEC
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: 0x0010U
    - item_type: preproc_def
      name: NETLINK_GET_STRICT_CHK
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SOL_NETLINK
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '270'
    - item_type: preproc_def
      name: IFLA_LINKMODE
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '17'
    - item_type: preproc_def
      name: IFLA_LINKINFO
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '18'
    - item_type: preproc_def
      name: IFLA_NET_NS_PID
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '19'
    - item_type: preproc_def
      name: IFLA_NET_NS_FD
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '28'
    - item_type: preproc_def
      name: IFLA_INFO_KIND
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IFLA_VLAN_ID
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IFLA_INFO_DATA
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: VETH_INFO_PEER
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VETH_MODE_BRIDGE
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VETH_MODE_ROUTER
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IFLA_MACVLAN_MODE
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IFLA_IPVLAN_MODE
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IFLA_IPVLAN_ISOLATION
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IFLA_NEW_NETNSID
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '45'
    - item_type: preproc_def
      name: IFLA_TARGET_NETNSID
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: = IFLA_IF_NETNSID
    - item_type: preproc_def
      name: IFLA_IF_NETNSID
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '46'
    - item_type: preproc_def
      name: IFLA_TARGET_NETNSID
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '46'
    - item_type: preproc_def
      name: IFA_TARGET_NETNSID
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '10'
    - item_type: preproc_def
      name: IFLA_STATS
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '7'
    - item_type: preproc_def
      name: IFLA_STATS64
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '23'
    - item_type: preproc_def
      name: RTM_NEWNSID
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '88'
    - item_type: preproc_def
      name: RTM_GETNSID
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '90'
    - item_type: preproc_def
      name: NLMSG_ERROR
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MACVLAN_MODE_PRIVATE
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MACVLAN_MODE_VEPA
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MACVLAN_MODE_BRIDGE
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MACVLAN_MODE_PASSTHRU
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '8'
    - item_type: preproc_def
      name: IPVLAN_MODE_L2
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IPVLAN_MODE_L3
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IPVLAN_MODE_L3S
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IPVLAN_ISOLATION_BRIDGE
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IPVLAN_ISOLATION_PRIVATE
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IPVLAN_ISOLATION_VEPA
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: BRIDGE_VLAN_NONE
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '-1 '
    - item_type: preproc_def
      name: BRIDGE_VLAN_ID_MAX
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '4094 '
    - item_type: preproc_def
      name: BRIDGE_FLAGS_MASTER
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: BRIDGE_VLAN_INFO_PVID
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: BRIDGE_VLAN_INFO_UNTAGGED
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '(1<<2) '
    - item_type: preproc_def
      name: IFLA_BRIDGE_FLAGS
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IFLA_BRIDGE_VLAN_INFO
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LXC_AUDS_ADDR_LEN
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: sizeof(((struct sockaddr_un *)0)->sun_path)
    - item_type: preproc_def
      name: MS_PRIVATE
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (1<<18)
    - item_type: preproc_def
      name: MS_SLAVE
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (1 << 19)
    - item_type: preproc_def
      name: MS_LAZYTIME
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: (1<<25)
    - item_type: preproc_def
      name: MS_REC
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: MS_NOSYMFOLLOW
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '256     '
    - item_type: preproc_def
      name: O_PATH
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '010000000'
    - item_type: preproc_def
      name: O_NOFOLLOW
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '00400000'
    - item_type: preproc_def
      name: SOCK_CLOEXEC
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '02000000'
    - item_type: preproc_def
      name: LXC_INVALID_UID
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: ((uid_t)-1)
    - item_type: preproc_def
      name: LXC_INVALID_GID
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: ((gid_t)-1)
    - item_type: preproc_def
      name: LXC_SENDFILE_MAX
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x7ffff000'
    - item_type: preproc_def
      name: LXC_CONFIG_FNAME
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '"config"'
    - item_type: preproc_def
      name: LXC_PARTIAL_FNAME
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '"partial"'
    - item_type: preproc_def
      name: LXC_ROOTFS_DNAME
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '"rootfs"'
    - item_type: preproc_def
      name: LXC_TIMESTAMP_FNAME
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '"ts"'
    - item_type: preproc_def
      name: LXC_COMMENT_FNAME
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '"comment"'
    - item_type: preproc_def
      name: TIOCGPTPEER
      pos:
        line_end: 718
        line_start: 717
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: _IO('t', 137)
    - item_type: preproc_def
      name: TIOCGPTPEER
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: _IO('T', 0x41)
    - item_type: preproc_def
      name: ENOCGROUP2
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: ENOMEDIUM
    - item_type: preproc_def
      name: MAX_FILENO
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: ~0U
    - item_type: preproc_def
      name: __aligned_u64
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: __u64 __attribute__((aligned(8)))
    - item_type: preproc_def
      name: BITS_PER_BYTE
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PER_LINUX
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: PER_LINUX32
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: NBITS
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '32 '
    - item_type: preproc_def
      name: FS_IOC_GETFLAGS
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: _IOR('f', 1, long)
    - item_type: preproc_def
      name: FS_IOC_SETFLAGS
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: _IOW('f', 2, long)
    - item_type: preproc_def
      name: FS_IMMUTABLE_FL
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/lxc/src/lxc/macro.h
      type_or_value: '0x00000010 '
    structs: []
    typedefs:
    - item_type: typedef
      name: llu
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/lxc/src/lxc/macro.h
      type: long long unsigned int
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/lxccontainer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_CLONE_KEEPNAME
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: LXC_CLONE_KEEPMACADDR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: LXC_CLONE_SNAPSHOT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: LXC_CLONE_KEEPBDEVTYPE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: LXC_CLONE_MAYBE_SNAPSHOT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: LXC_CLONE_MAXFLAGS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: LXC_CLONE_ALLOW_RUNNING
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 6) '
    - item_type: preproc_def
      name: LXC_CREATE_QUIET
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 0) '
    - item_type: preproc_def
      name: LXC_CREATE_MAXFLAGS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: LXC_MOUNT_API_V1
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FEATURE_MEM_TRACK
      pos:
        line_end: 956
        line_start: 955
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: (1ULL << 0)
    - item_type: preproc_def
      name: FEATURE_LAZY_PAGES
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/lxc/src/lxc/lxccontainer.h
      type_or_value: (1ULL << 1)
    structs:
    - fields:
      - name: version
        type: int
      item_type: struct
      name: lxc_mount
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/lxc/src/lxc/lxccontainer.h
    - fields:
      - name: '*name'
        type: char
      - name: '*configfile'
        type: char
      - name: '*pidfile'
        type: char
      - name: '*slock'
        type: struct lxc_lock
      - name: '*privlock'
        type: struct lxc_lock
      - name: numthreads
        type: int
      - name: '*lxc_conf'
        type: struct lxc_conf
      - name: '*error_string'
        type: char
      - name: error_num
        type: int
      - name: daemonize
        type: bool
      - name: '*config_path'
        type: char
      - name: (*is_defined)(struct lxc_container *c)
        type: bool
      - name: '*(*state)(struct lxc_container *c)'
        type: char
      - name: (*is_running)(struct lxc_container *c)
        type: bool
      - name: (*freeze)(struct lxc_container *c)
        type: bool
      - name: (*unfreeze)(struct lxc_container *c)
        type: bool
      - name: (*init_pid)(struct lxc_container *c)
        type: pid_t
      - name: (*load_config)(struct lxc_container *c, const char *alt_file)
        type: bool
      - name: (*start)(struct lxc_container *c, int useinit, char * const argv[])
        type: bool
      - name: (*startl)(struct lxc_container *c, int useinit, ...)
        type: bool
      - name: (*stop)(struct lxc_container *c)
        type: bool
      - name: (*want_daemonize)(struct lxc_container *c, bool state)
        type: bool
      - name: (*want_close_all_fds)(struct lxc_container *c, bool state)
        type: bool
      - name: '*(*config_file_name)(struct lxc_container *c)'
        type: char
      - name: (*wait)(struct lxc_container *c, const char *state, int timeout)
        type: bool
      - name: (*set_config_item)(struct lxc_container *c, const char *key, const char
          *value)
        type: bool
      - name: (*destroy)(struct lxc_container *c)
        type: bool
      - name: (*save_config)(struct lxc_container *c, const char *alt_file)
        type: bool
      - name: "(*create)(struct lxc_container *c, const char *t, const char *bdevtype,\n\t\t\tstruct
          bdev_specs *specs, int flags, char *const argv[])"
        type: bool
      - name: "(*createl)(struct lxc_container *c, const char *t, const char *bdevtype,\n\t\t\tstruct
          bdev_specs *specs, int flags, ...)"
        type: bool
      - name: (*rename)(struct lxc_container *c, const char *newname)
        type: bool
      - name: (*reboot)(struct lxc_container *c)
        type: bool
      - name: (*shutdown)(struct lxc_container *c, int timeout)
        type: bool
      - name: (*clear_config)(struct lxc_container *c)
        type: void
      - name: (*clear_config_item)(struct lxc_container *c, const char *key)
        type: bool
      - name: (*get_config_item)(struct lxc_container *c, const char *key, char *retv,
          int inlen)
        type: int
      - name: '* (*get_running_config_item)(struct lxc_container *c, const char *key)'
        type: char
      - name: (*get_keys)(struct lxc_container *c, const char *key, char *retv, int
          inlen)
        type: int
      - name: '** (*get_interfaces)(struct lxc_container *c)'
        type: char
      - name: '** (*get_ips)(struct lxc_container *c, const char* interface, const
          char* family, int scope)'
        type: char
      - name: (*get_cgroup_item)(struct lxc_container *c, const char *subsys, char
          *retv, int inlen)
        type: int
      - name: (*set_cgroup_item)(struct lxc_container *c, const char *subsys, const
          char *value)
        type: bool
      - name: '*(*get_config_path)(struct lxc_container *c)'
        type: char
      - name: (*set_config_path)(struct lxc_container *c, const char *path)
        type: bool
      - name: "*(*clone)(struct lxc_container *c, const char *newname,\n\t\t\tconst
          char *lxcpath, int flags, const char *bdevtype,\n\t\t\tconst char *bdevdata,
          uint64_t newsize, char **hookargs)"
        type: struct lxc_container
      - name: (*console_getfd)(struct lxc_container *c, int *ttynum, int *ptxfd)
        type: int
      - name: "(*console)(struct lxc_container *c, int ttynum,\n\t\t\tint stdinfd,
          int stdoutfd, int stderrfd, int escape)"
        type: int
      - name: "(*attach)(struct lxc_container *c, lxc_attach_exec_t exec_function,\n\t\t\tvoid
          *exec_payload, lxc_attach_options_t *options, pid_t *attached_process)"
        type: int
      - name: (*attach_run_wait)(struct lxc_container *c, lxc_attach_options_t *options,
          const char *program, const char * const argv[])
        type: int
      - name: (*attach_run_waitl)(struct lxc_container *c, lxc_attach_options_t *options,
          const char *program, const char *arg, ...)
        type: int
      - name: (*snapshot)(struct lxc_container *c, const char *commentfile)
        type: int
      - name: (*snapshot_list)(struct lxc_container *c, struct lxc_snapshot **snapshots)
        type: int
      - name: (*snapshot_restore)(struct lxc_container *c, const char *snapname, const
          char *newname)
        type: bool
      - name: (*snapshot_destroy)(struct lxc_container *c, const char *snapname)
        type: bool
      - name: (*may_control)(struct lxc_container *c)
        type: bool
      - name: (*add_device_node)(struct lxc_container *c, const char *src_path, const
          char *dest_path)
        type: bool
      - name: (*remove_device_node)(struct lxc_container *c, const char *src_path,
          const char *dest_path)
        type: bool
      - name: (*attach_interface)(struct lxc_container *c, const char *dev, const
          char *dst_dev)
        type: bool
      - name: (*detach_interface)(struct lxc_container *c, const char *dev, const
          char *dst_dev)
        type: bool
      - name: (*checkpoint)(struct lxc_container *c, char *directory, bool stop, bool
          verbose)
        type: bool
      - name: (*restore)(struct lxc_container *c, char *directory, bool verbose)
        type: bool
      - name: (*destroy_with_snapshots)(struct lxc_container *c)
        type: bool
      - name: (*snapshot_destroy_all)(struct lxc_container *c)
        type: bool
      - name: (*migrate)(struct lxc_container *c, unsigned int cmd, struct migrate_opts
          *opts, unsigned int size)
        type: int
      - name: (*console_log)(struct lxc_container *c, struct lxc_console_log *log)
        type: int
      - name: (*reboot2)(struct lxc_container *c, int timeout)
        type: bool
      - name: "(*mount)(struct lxc_container *c, const char *source,\n\t\t     const
          char *target, const char *filesystemtype,\n\t\t     unsigned long mountflags,
          const void *data,\n\t\t     struct lxc_mount *mnt)"
        type: int
      - name: "(*umount)(struct lxc_container *c, const char *target,\n\t\t      unsigned
          long mountflags, struct lxc_mount *mnt)"
        type: int
      - name: (*seccomp_notify_fd)(struct lxc_container *c)
        type: int
      - name: (*seccomp_notify_fd_active)(struct lxc_container *c)
        type: int
      - name: (*init_pidfd)(struct lxc_container *c)
        type: int
      - name: (*devpts_fd)(struct lxc_container *c)
        type: int
      - name: rcv_timeout
        type: int
      - name: (*set_timeout)(struct lxc_container *c, int timeout)
        type: bool
      item_type: struct
      name: lxc_container
      pos:
        line_end: 901
        line_start: 49
        source_file: /src/lxc/src/lxc/lxccontainer.h
    - fields:
      - name: '*name'
        type: char
      - name: '*comment_pathname'
        type: char
      - name: '*timestamp'
        type: char
      - name: '*lxcpath'
        type: char
      - name: (*free)(struct lxc_snapshot *s)
        type: void
      item_type: struct
      name: lxc_snapshot
      pos:
        line_end: 917
        line_start: 906
        source_file: /src/lxc/src/lxc/lxccontainer.h
    - fields:
      - name: '*fstype'
        type: char
      - name: fssize
        type: uint64_t
      - name: zfs
        type: "struct {\n\t\tchar *zfsroot; /*!< ZFS root path */\n\t}"
      - name: lvm
        type: "struct {\n\t\tchar *vg; /*!< LVM Volume Group name */\n\t\tchar *lv;
          /*!< LVM Logical Volume name */\n\t\tchar *thinpool; /*!< LVM thin pool
          to use, if any */\n\t}"
      - name: '*dir'
        type: char
      - name: rbd
        type: "struct {\n\t\tchar *rbdname; /*!< RBD image name */\n\t\tchar *rbdpool;
          /*!< Ceph pool name */\n\t\tchar *rbduser; /*!< Ceph user name*/\n\t}"
      item_type: struct
      name: bdev_specs
      pos:
        line_end: 940
        line_start: 923
        source_file: /src/lxc/src/lxc/lxccontainer.h
    - fields:
      - name: '*directory'
        type: char
      - name: verbose
        type: bool
      - name: stop
        type: bool
      - name: '*predump_dir'
        type: char
      - name: '*pageserver_address'
        type: char
      - name: '*pageserver_port'
        type: char
      - name: preserves_inodes
        type: bool
      - name: '*action_script'
        type: char
      - name: disable_skip_in_flight
        type: bool
      - name: ghost_limit
        type: uint64_t
      - name: features_to_check
        type: uint64_t
      item_type: struct
      name: migrate_opts
      pos:
        line_end: 1001
        line_start: 961
        source_file: /src/lxc/src/lxc/lxccontainer.h
    - fields:
      - name: clear
        type: bool
      - name: read
        type: bool
      - name: '*read_max'
        type: uint64_t
      - name: '*data'
        type: char
      item_type: struct
      name: lxc_console_log
      pos:
        line_end: 1023
        line_start: 1003
        source_file: /src/lxc/src/lxc/lxccontainer.h
    - fields:
      - name: '*name'
        type: char
      - name: '*lxcpath'
        type: char
      - name: '*file'
        type: char
      - name: '*level'
        type: char
      - name: '*prefix'
        type: char
      - name: quiet
        type: bool
      item_type: struct
      name: lxc_log
      pos:
        line_end: 1139
        line_start: 1132
        source_file: /src/lxc/src/lxc/lxccontainer.h
    typedefs: []
    union: []
- function_names:
  - put_lxc_container
  source_file: /src/lxc/src/lxc/lxc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __put_lxc_container
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/lxc/src/lxc/lxc.h
      type_or_value: call_cleaner(put_lxc_container)
    structs: []
    typedefs: []
    union: []
- function_names:
  - __keyctl
  - memfd_create_lxc
  - pivot_root
  - sethostname
  - setns
  - signalfd
  - unshare
  - faccessat
  - close_range
  - personality
  - core_scheduling_cookie_valid
  - core_scheduling_cookie_get
  - core_scheduling_cookie_create_threadgroup
  - core_scheduling_cookie_share_with
  source_file: /src/lxc/src/lxc/syscall_wrappers.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: keyctl
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: __keyctl
    - item_type: preproc_def
      name: F_LINUX_SPECIFIC_BASE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: F_ADD_SEALS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: (F_LINUX_SPECIFIC_BASE + 9)
    - item_type: preproc_def
      name: F_GET_SEALS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: (F_LINUX_SPECIFIC_BASE + 10)
    - item_type: preproc_def
      name: F_SEAL_SEAL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: F_SEAL_SHRINK
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: F_SEAL_GROW
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: F_SEAL_WRITE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: memfd_create
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: memfd_create_lxc
    - item_type: preproc_def
      name: CLOSE_RANGE_UNSHARE
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: CLOSE_RANGE_CLOEXEC
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: PR_SCHED_CORE
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '62'
    - item_type: preproc_def
      name: PR_SCHED_CORE_GET
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PR_SCHED_CORE_CREATE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PR_SCHED_CORE_SHARE_TO
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: PR_SCHED_CORE_SHARE_FROM
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: PR_SCHED_CORE_MAX
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PR_SCHED_CORE_SCOPE_THREAD
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PR_SCHED_CORE_SCOPE_THREAD_GROUP
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PR_SCHED_CORE_SCOPE_PROCESS_GROUP
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: '2'
    - item_type: preproc_def
      name: INVALID_SCHED_CORE_COOKIE
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type_or_value: ((__u64)-1)
    structs:
    - fields:
      - name: ssi_signo
        type: uint32_t
      - name: ssi_errno
        type: int32_t
      - name: ssi_code
        type: int32_t
      - name: ssi_pid
        type: uint32_t
      - name: ssi_uid
        type: uint32_t
      - name: ssi_fd
        type: int32_t
      - name: ssi_tid
        type: uint32_t
      - name: ssi_band
        type: uint32_t
      - name: ssi_overrun
        type: uint32_t
      - name: ssi_trapno
        type: uint32_t
      - name: ssi_status
        type: int32_t
      - name: ssi_int
        type: int32_t
      - name: ssi_ptr
        type: uint64_t
      - name: ssi_utime
        type: uint64_t
      - name: ssi_stime
        type: uint64_t
      - name: ssi_addr
        type: uint64_t
      - name: __pad[48]
        type: uint8_t
      item_type: struct
      name: signalfd_siginfo
      pos:
        line_end: 111
        line_start: 93
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
    typedefs:
    - item_type: typedef
      name: key_serial_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/lxc/src/lxc/syscall_wrappers.h
      type: int32_t
    union: []
- function_names:
  - lxc_caps_down
  - lxc_caps_up
  - lxc_ambient_caps_up
  - lxc_ambient_caps_down
  - lxc_caps_init
  - lxc_caps_last_cap
  - lxc_proc_cap_is_set
  - lxc_file_cap_is_set
  - lxc_priv
  - lxc_unpriv
  source_file: /src/lxc/src/lxc/caps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: cap_value_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/lxc/src/lxc/caps.h
      type: int
    - item_type: typedef
      name: cap_flag_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/lxc/src/lxc/caps.h
      type: int
    union: []
- function_names:
  - lxc_open_dirfd
  - lxc_readat
  - lxc_writeat
  - lxc_write_openat
  - lxc_write_to_file
  - lxc_read_from_file
  - lxc_read_try_buf_at
  - lxc_write_nointr
  - lxc_pwrite_nointr
  - lxc_send_nointr
  - lxc_read_nointr
  - lxc_recv_nointr
  - lxc_recvmsg_nointr_iov
  - lxc_read_nointr_expect
  - lxc_read_file_expect
  - file_exists
  - print_to_file
  - lxc_is_dir
  - lxc_count_file_lines
  - lxc_make_tmpfile
  - lxc_is_fs_type
  - has_fs_type
  - fhas_fs_type
  - fopen_cloexec
  - lxc_sendfile_nointr
  - __fd_to_fd
  - fd_to_buf
  - file_to_buf
  - fopen_cached
  - fdopen_cached
  - lxc_fd_cloexec
  - fdopen_at
  - timens_offset_write
  - exists_dir_at
  - exists_file_at
  - open_at
  - open_at_same
  - fd_make_blocking
  - fd_make_nonblocking
  - batch_realloc
  - append_line
  - read_file_at
  - same_file_lax
  - same_device
  - open_beneath
  source_file: /src/lxc/src/lxc/file_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BATCH_SIZE
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/lxc/src/lxc/file_utils.c
      type_or_value: '50'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ns_info
  source_file: /src/lxc/src/lxc/namespace.h
  types:
    enum:
    - enumerators:
      - name: LXC_NS_USER
        value: '0'
      - name: LXC_NS_MNT
        value: '1'
      - name: LXC_NS_IPC
        value: '4'
      - name: LXC_NS_PID
        value: '2'
      - name: LXC_NS_UTS
        value: '3'
      - name: LXC_NS_NET
        value: '5'
      - name: LXC_NS_CGROUP
        value: '6'
      - name: LXC_NS_TIME
        value: '7'
      - name: LXC_NS_MAX
        value: '8'
      item_type: enum
      name: lxc_namespace_t
      pos:
        line_end: 23
        line_start: 13
        source_file: /src/lxc/src/lxc/namespace.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_NS_PROC_NAME
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/namespace.h
      type_or_value: '6'
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_net_type_to_str
  - lxc_ifname_alnum_case_sensitive
  - lxc_ip_route_dest
  - lxc_ipv4_dest_add
  - lxc_ipv6_dest_add
  - lxc_ipv4_dest_del
  - lxc_ipv6_dest_del
  - setup_ipv4_routes
  - setup_ipv6_routes
  - setup_ipv4_addr_routes
  - setup_ipv6_addr_routes
  - lxc_ip_neigh_proxy
  - lxc_is_ip_forwarding_enabled
  - lxc_bridge_vlan
  - lxc_bridge_vlan_add
  - lxc_bridge_vlan_del
  - lxc_bridge_vlan_add_tagged
  - lxc_list_for_each
  - validate_veth
  - setup_veth_native_bridge_vlan
  - free_ovs_veth_vlan_args
  - lxc_ovs_setup_bridge_vlan_exec
  - setup_veth_ovs_bridge_vlan
  - netdev_configure_server_veth
  - netdev_configure_server_macvlan
  - lxc_ipvlan_create
  - netdev_configure_server_ipvlan
  - netdev_configure_server_vlan
  - netdev_configure_server_phys
  - netdev_configure_server_empty
  - netdev_configure_server_none
  - __netdev_configure_container_common
  - netdev_configure_container_veth
  - netdev_configure_container_macvlan
  - netdev_configure_container_ipvlan
  - netdev_configure_container_vlan
  - netdev_configure_container_phys
  - netdev_configure_container_empty
  - netdev_configure_container_none
  - netdev_shutdown_server_veth
  - netdev_shutdown_server_macvlan
  - netdev_shutdown_server_ipvlan
  - netdev_shutdown_server_vlan
  - netdev_shutdown_server_phys
  - netdev_shutdown_server_empty
  - netdev_shutdown_server_none
  - lxc_netdev_move_by_index_fd
  - lxc_netdev_move_by_index
  - is_wlan
  - lxc_netdev_rename_by_name_in_netns
  - lxc_netdev_move_wlan
  - lxc_netdev_move_by_name
  - lxc_netdev_delete_by_index
  - lxc_netdev_delete_by_name
  - lxc_netdev_rename_by_index
  - lxc_netdev_rename_by_name
  - netdev_set_flag
  - netdev_get_flag
  - lxc_netdev_isup
  - netdev_get_mtu
  - lxc_netdev_set_mtu
  - lxc_netdev_up
  - lxc_netdev_down
  - lxc_veth_create
  - lxc_vlan_create
  - lxc_macvlan_create
  - proc_sys_net_write
  - ip_forwarding_set
  - lxc_ip_forwarding_on
  - lxc_ip_forwarding_off
  - neigh_proxy_set
  - lxc_is_ip_neigh_proxy_enabled
  - lxc_neigh_proxy_on
  - lxc_neigh_proxy_off
  - lxc_convert_mac
  - ip_addr_add
  - lxc_ipv6_addr_add
  - lxc_ipv4_addr_add
  - ifa_get_local_ip
  - ip_addr_get
  - lxc_ipv6_addr_get
  - lxc_ipv4_addr_get
  - ip_gateway_add
  - lxc_ipv4_gateway_add
  - lxc_ipv6_gateway_add
  - is_ovs_bridge
  - lxc_ovs_delete_port_exec
  - lxc_ovs_delete_port
  - lxc_ovs_attach_bridge_exec
  - lxc_ovs_attach_bridge
  - lxc_bridge_attach
  - setup_private_host_hw_addr
  - lxc_find_gateway_addresses
  - lxc_create_network_unpriv_exec
  - lxc_delete_network_unpriv_exec
  - lxc_delete_network_unpriv
  - lxc_setup_l2proxy
  - lxc_delete_ipv4_l2proxy
  - lxc_delete_ipv6_l2proxy
  - lxc_delete_l2proxy
  - lxc_create_network_priv
  - create_transient_name
  - netdev_requires_move
  - lxc_network_move_created_netdev_priv
  - network_requires_advanced_setup
  - lxc_create_network_unpriv
  - lxc_delete_network_priv
  - lxc_requests_empty_network
  - list_for_each_entry
  - lxc_restore_phys_nics_to_netns
  - setup_hw_addr
  - setup_ipv4_addr
  - setup_ipv6_addr
  - lxc_network_setup_in_child_namespaces_common
  - lxc_setup_network_in_child_namespaces
  - list_for_each_entry
  - list_for_each_entry
  - lxc_network_send_to_child
  - lxc_network_recv_from_parent
  - lxc_network_send_name_and_ifindex_to_parent
  - list_for_each_entry
  - lxc_network_recv_name_and_ifindex_from_child
  - lxc_delete_network
  - lxc_netns_set_nsid
  - parse_rtattr
  - rta_getattr_s32
  - NETNS_RTA
  - lxc_netns_get_nsid
  - lxc_create_network
  source_file: /src/lxc/src/lxc/network.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PHYSNAME
      pos:
        line_end: 1606
        line_start: 1605
        source_file: /src/lxc/src/lxc/network.c
      type_or_value: '"/sys/class/net/%s/phy80211/name"'
    - item_type: preproc_def
      name: LXC_USERNIC_PATH
      pos:
        line_end: 2943
        line_start: 2942
        source_file: /src/lxc/src/lxc/network.c
      type_or_value: LIBEXECDIR "/lxc/lxc-user-nic"
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: template[IFNAMSIZ]
        type: char
      - name: template_len
        type: size_t
      item_type: struct
      name: lxc_network_info
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/lxc/src/lxc/network.c
    - fields:
      - name: flags
        type: __u16
      - name: vid
        type: __u16
      item_type: struct
      name: bridge_vlan_info
      pos:
        line_end: 321
        line_start: 318
        source_file: /src/lxc/src/lxc/network.c
    - fields:
      - name: '*nic'
        type: char
      - name: '*vlan_mode'
        type: char
      - name: vlan_id
        type: short
      - name: '*trunks'
        type: char
      item_type: struct
      name: ovs_veth_vlan_args
      pos:
        line_end: 500
        line_start: 495
        source_file: /src/lxc/src/lxc/network.c
    - fields:
      - name: '*bridge'
        type: char
      - name: '*nic'
        type: char
      item_type: struct
      name: ovs_veth_args
      pos:
        line_end: 2792
        line_start: 2789
        source_file: /src/lxc/src/lxc/network.c
    typedefs:
    - item_type: typedef
      name: (*netdev_configure_server_cb)(struct lxc_handler *, struct lxc_netdev
        *)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/lxc/src/lxc/network.c
      type: int
    - item_type: typedef
      name: (*netdev_configure_container_cb)(struct lxc_netdev *)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/lxc/src/lxc/network.c
      type: int
    - item_type: typedef
      name: (*netdev_shutdown_server_cb)(struct lxc_handler *, struct lxc_netdev *)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/lxc/src/lxc/network.c
      type: int
    union: []
- function_names:
  - copy_global_config_value
  - lxc_global_config_value
  - setproctitle
  - prevent_forking
  - kill_children
  - remove_self
  - interrupt_handler
  - close_inherited
  - lxc_container_init
  source_file: /src/lxc/src/lxc/initutils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_seccomp_close_notifier_fd
  - lxc_seccomp_get_notify_fd
  - lxc_seccomp_load
  - lxc_read_seccomp_config
  - lxc_seccomp_free
  - seccomp_notify_handler
  - seccomp_notify_cleanup_handler
  - seccomp_conf_init
  - lxc_seccomp_setup_proxy
  - lxc_seccomp_send_notifier_fd
  - lxc_seccomp_recv_notifier_fd
  - lxc_seccomp_add_notifier
  - lxc_seccomp_get_notify_fd
  - lxc_seccomp_close_notifier_fd
  source_file: /src/lxc/src/lxc/lxcseccomp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECCOMP_FILTER_FLAG_NEW_LISTENER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/src/lxc/lxcseccomp.h
      type_or_value: (1UL << 3)
    structs:
    - fields:
      - name: seccomp_notif
        type: __u16
      - name: seccomp_notif_resp
        type: __u16
      - name: seccomp_data
        type: __u16
      item_type: struct
      name: seccomp_notif_sizes
      pos:
        line_end: 41
        line_start: 37
        source_file: /src/lxc/src/lxc/lxcseccomp.h
    - fields:
      - name: __reserved
        type: uint64_t
      - name: monitor_pid
        type: pid_t
      - name: init_pid
        type: pid_t
      - name: sizes
        type: struct seccomp_notif_sizes
      - name: cookie_len
        type: uint64_t
      item_type: struct
      name: seccomp_notify_proxy_msg
      pos:
        line_end: 51
        line_start: 44
        source_file: /src/lxc/src/lxc/lxcseccomp.h
    - fields:
      - name: wants_supervision
        type: bool
      - name: notify_fd
        type: int
      - name: proxy_fd
        type: int
      - name: proxy_addr
        type: struct sockaddr_un
      - name: sizes
        type: struct seccomp_notif_sizes
      - name: '*req_buf'
        type: struct seccomp_notif
      - name: '*rsp_buf'
        type: struct seccomp_notif_resp
      - name: '*cookie'
        type: char
      item_type: struct
      name: seccomp_notify
      pos:
        line_end: 62
        line_start: 53
        source_file: /src/lxc/src/lxc/lxcseccomp.h
    - fields:
      - name: '*seccomp'
        type: char
      item_type: struct
      name: lxc_seccomp
      pos:
        line_end: 76
        line_start: 66
        source_file: /src/lxc/src/lxc/lxcseccomp.h
    - fields:
      - name: '*seccomp'
        type: char
      item_type: struct
      name: lxc_seccomp
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/lxc/src/lxc/lxcseccomp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/monitor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: lxc_msg_type_t
      - name: name[NAME_MAX + 1]
        type: char
      - name: value
        type: int
      item_type: struct
      name: lxc_msg
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/lxc/src/lxc/monitor.h
    typedefs: []
    union: []
- function_names:
  - LIST_HEAD_INIT
  - LIST_HEAD
  - INIT_LIST_HEAD
  - __list_add
  - list_add
  - list_add_tail
  - __list_del
  - __list_del_entry
  - list_del
  - list_replace
  - list_replace_init
  - list_swap
  - list_del_init
  - list_move
  - list_move_tail
  - list_bulk_move_tail
  - list_is_first
  - list_is_last
  - list_empty
  - list_rotate_left
  - list_rotate_to_front
  - list_is_singular
  - __list_cut_position
  - list_cut_position
  - list_cut_before
  - __list_splice
  - list_splice
  - list_splice_tail
  - list_splice_init
  - list_splice_tail_init
  - list_entry
  - list_first_entry
  - list_last_entry
  - list_first_entry_or_null
  - list_next_entry
  - list_prev_entry
  - list_for_each
  - list_for_each_continue
  - list_for_each_prev
  - list_for_each_safe
  - list_for_each_prev_safe
  - list_entry_is_head
  - list_for_each_entry
  - list_for_each_entry_reverse
  - list_prepare_entry
  - list_for_each_entry_continue
  - list_for_each_entry_continue_reverse
  - list_for_each_entry_from
  - list_for_each_entry_from_reverse
  - list_for_each_entry_safe
  - list_for_each_entry_safe_continue
  - list_for_each_entry_safe_from
  - list_for_each_entry_safe_reverse
  - list_safe_reset_next
  - HLIST_HEAD
  - INIT_HLIST_HEAD
  - INIT_HLIST_NODE
  - hlist_unhashed
  - hlist_unhashed_lockless
  - hlist_empty
  - __hlist_del
  - hlist_del
  - hlist_del_init
  - hlist_add_head
  - hlist_add_before
  - hlist_add_behind
  - hlist_add_fake
  - hlist_fake
  - hlist_is_singular_node
  - hlist_move_list
  - hlist_entry
  - hlist_for_each
  - hlist_for_each_safe
  - hlist_entry_safe
  - hlist_for_each_entry
  - hlist_for_each_entry_continue
  - hlist_for_each_entry_from
  - hlist_for_each_entry_safe
  - list_len
  source_file: /src/lxc/src/lxc/hlist.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_POISON1
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/lxc/hlist.h
      type_or_value: ((void *) 0x100)
    - item_type: preproc_def
      name: LIST_POISON2
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/lxc/hlist.h
      type_or_value: ((void *) 0x122)
    - item_type: preproc_def
      name: HLIST_HEAD_INIT
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/lxc/src/lxc/hlist.h
      type_or_value: '{ .first = NULL }'
    structs:
    - fields:
      - name: '*next'
        type: struct list_head
      item_type: struct
      name: list_head
      pos:
        line_end: 7
        line_start: 5
        source_file: /src/lxc/src/lxc/hlist.h
    - fields:
      - name: '*first'
        type: struct hlist_node
      item_type: struct
      name: hlist_head
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/lxc/src/lxc/hlist.h
    - fields:
      - name: '*next'
        type: struct hlist_node
      item_type: struct
      name: hlist_node
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/lxc/src/lxc/hlist.h
    typedefs: []
    union: []
- function_names:
  - lxc_monitor_fifo_name
  - lxc_monitor_fifo_send
  - lxc_monitor_send_state
  - lxc_monitor_send_exit_code
  - lxc_monitor_close
  - lxc_monitor_sock_name
  - lxc_monitor_open
  - lxc_monitor_read_fdset
  - lxc_monitor_read_timeout
  - lxc_monitor_read
  - lxc_monitord_spawn
  source_file: /src/lxc/src/lxc/monitor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_MONITORD_PATH
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/lxc/src/lxc/monitor.c
      type_or_value: LIBEXECDIR "/lxc/lxc-monitord"
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_tty_major_minor
  - cmp_version
  - put_criu_exec_args
  - exec_criu
  - DECLARE_ARG
  - __criu_check_feature
  - criu_version_ok
  - criu_ok
  - restore_net_info
  - do_restore
  - save_tty_major_minor
  - do_dump
  - __criu_pre_dump
  - __criu_dump
  - __criu_restore
  source_file: /src/lxc/src/lxc/criu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CRIU_VERSION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/lxc/criu.c
      type_or_value: '"2.0"'
    - item_type: preproc_def
      name: CRIU_GITID_VERSION
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/lxc/criu.c
      type_or_value: '"2.0"'
    - item_type: preproc_def
      name: CRIU_GITID_PATCHLEVEL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/lxc/src/lxc/criu.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CRIU_IN_FLIGHT_SUPPORT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/lxc/criu.c
      type_or_value: '"2.4"'
    - item_type: preproc_def
      name: CRIU_EXTERNAL_NOT_VETH
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/lxc/src/lxc/criu.c
      type_or_value: '"2.8"'
    - item_type: preproc_def
      name: CRIU_EXTERNAL_NETDEV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/lxc/src/lxc/criu.c
      type_or_value: '"3.15"'
    structs:
    - fields:
      - name: pipefd
        type: int
      - name: '*action'
        type: char
      - name: '*user'
        type: struct migrate_opts
      - name: '*c'
        type: struct lxc_container
      - name: tty_id[32]
        type: char
      - name: '*handler'
        type: struct lxc_handler
      - name: console_fd
        type: int
      - name: '*console_name'
        type: char
      - name: '*criu_version'
        type: char
      item_type: struct
      name: criu_opts
      pos:
        line_end: 74
        line_start: 46
        source_file: /src/lxc/src/lxc/criu.c
    - fields:
      - name: argc
        type: int
      - name: '*argv[]'
        type: char
      item_type: struct
      name: criu_exec_args
      pos:
        line_end: 145
        line_start: 142
        source_file: /src/lxc/src/lxc/criu.c
    typedefs: []
    union: []
- function_names:
  - lxc_terminal_winsz
  - lxc_terminal_winch
  - lxc_terminal_signalfd_cb
  - lxc_terminal_signal_init
  - lxc_terminal_signal_sigmask_safe_blocked
  - lxc_terminal_signal_fini
  - lxc_terminal_truncate_log_file
  - lxc_terminal_rotate_log_file
  - lxc_terminal_write_log_file
  - lxc_terminal_ptx_io
  - lxc_terminal_peer_io
  - lxc_terminal_ptx_io_handler
  - lxc_terminal_peer_io_handler
  - lxc_terminal_mainloop_add_peer
  - lxc_terminal_mainloop_add
  - lxc_setup_tios
  - lxc_terminal_peer_proxy_free
  - lxc_terminal_peer_proxy_alloc
  - lxc_terminal_allocate
  - lxc_terminal_free
  - lxc_terminal_peer_default
  - lxc_terminal_write_ringbuffer
  - lxc_terminal_delete
  - lxc_terminal_create_ringbuf
  - lxc_terminal_create_log_file
  - lxc_terminal_map_ids
  - lxc_terminal_create_foreign
  - lxc_devpts_terminal
  - lxc_terminal_parent
  - lxc_terminal_create_native
  - lxc_terminal_create
  - lxc_terminal_setup
  - __terminal_dup2
  - lxc_terminal_set_stdfds
  - lxc_terminal_stdin_cb
  - lxc_terminal_ptx_cb
  - lxc_terminal_getfd
  - lxc_console
  - lxc_make_controlling_terminal
  - lxc_terminal_prepare_login
  - lxc_terminal_info_init
  - lxc_terminal_init
  - lxc_terminal_conf_free
  source_file: /src/lxc/src/lxc/terminal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_TERMINAL_BUFFER_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/lxc/terminal.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - wants_console
  source_file: /src/lxc/src/lxc/terminal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name[PATH_MAX]
        type: char
      - name: ptx
        type: int
      - name: pty
        type: int
      - name: busy
        type: int
      - name: pty_nr
        type: int
      item_type: struct
      name: lxc_terminal_info
      pos:
        line_end: 34
        line_start: 19
        source_file: /src/lxc/src/lxc/terminal.h
    - fields:
      - name: stdinfd
        type: int
      - name: stdoutfd
        type: int
      - name: ptxfd
        type: int
      - name: escape
        type: int
      - name: saw_escape
        type: int
      - name: sigfd
        type: int
      - name: oldmask
        type: sigset_t
      item_type: struct
      name: lxc_terminal_state
      pos:
        line_end: 61
        line_start: 36
        source_file: /src/lxc/src/lxc/terminal.h
    - fields:
      - name: pty_nr
        type: int
      - name: pty
        type: int
      - name: ptx
        type: int
      - name: peer
        type: int
      - name: proxy
        type: struct lxc_terminal_info
      - name: '*descr'
        type: struct lxc_async_descr
      - name: '*path'
        type: char
      - name: name[PATH_MAX]
        type: char
      - name: '*tios'
        type: struct termios
      - name: '*tty_state'
        type: struct lxc_terminal_state
      item_type: struct
      name: lxc_terminal
      pos:
        line_end: 96
        line_start: 63
        source_file: /src/lxc/src/lxc/terminal.h
    typedefs: []
    union: []
- function_names:
  - strprint
  source_file: /src/lxc/src/lxc/confile_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_lxc_cgroup
  - free_lxc_limit
  - free_lxc_sysctl
  - free_lxc_proc
  - lxc_wants_cap
  - chown_mapped_root
  - get_rootfs_mnt
  - put_lxc_mount_options
  - put_lxc_rootfs
  - lxc_clear_cgroup2_devices
  - lxc_personality
  source_file: /src/lxc/src/lxc/conf.h
  types:
    enum:
    - enumerators:
      - name: ID_TYPE_UID
      - name: ID_TYPE_GID
      item_type: enum
      name: idtype
      pos:
        line_end: 133
        line_start: 130
        source_file: /src/lxc/src/lxc/conf.h
    - enumerators:
      - name: LXC_MOUNT_CREATE_DIR
        value: '0'
      - name: LXC_MOUNT_CREATE_FILE
        value: '1'
      - name: LXC_MOUNT_RELATIVE
        value: '3'
      - name: LXC_MOUNT_IDMAP
        value: '4'
      - name: LXC_MOUNT_OPTIONAL
        value: '2'
      - name: LXC_MOUNT_MAX
        value: '5'
      item_type: enum
      name: lxc_mount_options_t
      pos:
        line_end: 211
        line_start: 204
        source_file: /src/lxc/src/lxc/conf.h
    - enumerators:
      - name: LXCHOOK_PRESTART
      - name: LXCHOOK_MOUNT
      - name: LXCHOOK_PREMOUNT
      - name: LXCHOOK_AUTODEV
      - name: LXCHOOK_START
      - name: LXCHOOK_STOP
      - name: LXCHOOK_POSTSTOP
      - name: LXCHOOK_CLONE
      - name: LXCHOOK_DESTROY
      - name: LXCHOOK_START_HOST
      - name: NUM_LXC_HOOKS
      item_type: enum
      name: lxchooks
      pos:
        line_end: 349
        line_start: 337
        source_file: /src/lxc/src/lxc/conf.h
    - enumerators:
      - name: LXC_BPF_DEVICE_CGROUP_ALLOWLIST
        value: '0'
      - name: LXC_BPF_DEVICE_CGROUP_DENYLIST
        value: '1'
      item_type: enum
      name: lxc_bpf_devices_rule_t
      pos:
        line_end: 362
        line_start: 359
        source_file: /src/lxc/src/lxc/conf.h
    preproc_defs:
    - item_type: preproc_def
      name: subuidfile
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/lxc/src/lxc/conf.h
      type_or_value: '"/etc/subuid"'
    - item_type: preproc_def
      name: subgidfile
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/lxc/src/lxc/conf.h
      type_or_value: '"/etc/subgid"'
    - item_type: preproc_def
      name: RLIM_INFINITY
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/lxc/src/lxc/conf.h
      type_or_value: ((unsigned long)-1)
    structs:
    - fields:
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_cgroup
      pos:
        line_end: 89
        line_start: 60
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: rlim_cur
        type: unsigned long
      - name: rlim_max
        type: unsigned long
      - name: head
        type: struct list_head
      item_type: struct
      name: rlimit
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*resource'
        type: char
      - name: limit
        type: struct rlimit
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_limit
      pos:
        line_end: 119
        line_start: 115
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*key'
        type: char
      - name: '*value'
        type: char
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_sysctl
      pos:
        line_end: 144
        line_start: 140
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*filename'
        type: char
      - name: '*value'
        type: char
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_proc
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: idtype
        type: enum idtype
      - name: hostid
        type: unsigned long
      - name: head
        type: struct list_head
      item_type: struct
      name: id_map
      pos:
        line_end: 191
        line_start: 187
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: max
        type: size_t
      - name: '*dir'
        type: char
      - name: '*tty_names'
        type: char
      - name: '*tty'
        type: struct lxc_terminal_info
      item_type: struct
      name: lxc_tty_info
      pos:
        line_end: 202
        line_start: 197
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: create_dir
        type: unsigned int
      - name: create_file
        type: unsigned int
      - name: optional
        type: unsigned int
      - name: relative
        type: unsigned int
      - name: bind_recursively
        type: unsigned int
      - name: propagate_recursively
        type: unsigned int
      - name: bind
        type: unsigned int
      - name: userns_path[PATH_MAX]
        type: char
      - name: mnt_flags
        type: unsigned long
      - name: prop_flags
        type: unsigned long
      - name: '*data'
        type: char
      - name: attr
        type: struct mount_attr
      - name: '*raw_options'
        type: char
      item_type: struct
      name: lxc_mount_options
      pos:
        line_end: 229
        line_start: 215
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: dfd_host
        type: int
      - name: '*path'
        type: char
      - name: fd_path_pin
        type: int
      - name: dfd_idmapped
        type: int
      - name: dfd_mnt
        type: int
      - name: '*mount'
        type: char
      - name: dfd_dev
        type: int
      - name: buf[PATH_MAX]
        type: char
      - name: '*__bdev_type'
        type: char
      - name: managed
        type: bool
      - name: mnt_opts
        type: struct lxc_mount_options
      - name: '*storage'
        type: struct lxc_storage
      item_type: struct
      name: lxc_rootfs
      pos:
        line_end: 258
        line_start: 241
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: clientfd
        type: int
      - name: states[MAX_STATE]
        type: lxc_state_t
      - name: head
        type: struct list_head
      item_type: struct
      name: lxc_state_client
      pos:
        line_end: 357
        line_start: 353
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: type
        type: char
      - name: major
        type: int
      - name: minor
        type: int
      - name: access[4]
        type: char
      - name: allow
        type: int
      - name: head
        type: struct list_head
      item_type: struct
      name: device_item
      pos:
        line_end: 371
        line_start: 364
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: list_type
        type: lxc_bpf_devices_rule_t
      - name: devices
        type: struct list_head
      item_type: struct
      name: bpf_devices
      pos:
        line_end: 376
        line_start: 373
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: s_boot
        type: int64_t
      - name: ns_boot
        type: int64_t
      - name: s_monotonic
        type: int64_t
      - name: ns_monotonic
        type: int64_t
      item_type: struct
      name: timens_offsets
      pos:
        line_end: 386
        line_start: 378
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*key'
        type: char
      - name: '*val'
        type: char
      - name: head
        type: struct list_head
      item_type: struct
      name: environment_entry
      pos:
        line_end: 392
        line_start: 388
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*cap_name'
        type: char
      - name: cap
        type: __u32
      - name: head
        type: struct list_head
      item_type: struct
      name: cap_entry
      pos:
        line_end: 398
        line_start: 394
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: keep
        type: int
      - name: list
        type: struct list_head
      item_type: struct
      name: caps
      pos:
        line_end: 403
        line_start: 400
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*val'
        type: char
      - name: head
        type: struct list_head
      item_type: struct
      name: string_entry
      pos:
        line_end: 408
        line_start: 405
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*name'
        type: char
      - name: is_execute
        type: bool
      - name: reboot
        type: int
      - name: personality
        type: personality_t
      - name: '*utsname'
        type: struct utsname
      - name: netdevs
        type: struct list_head
      - name: caps
        type: struct caps
      - name: ttys
        type: struct lxc_tty_info
      - name: console
        type: struct lxc_terminal
      - name: pty_max
        type: size_t
      - name: devpts_fd
        type: int
      - name: rootfs_setup
        type: bool
      - name: rootfs
        type: struct lxc_rootfs
      - name: close_all_fds
        type: bool
      - name: '*lsm_aa_profile'
        type: char
      - name: '*lsm_aa_profile_computed'
        type: char
      - name: lsm_aa_profile_created
        type: bool
      - name: lsm_aa_allow_nesting
        type: unsigned int
      - name: lsm_aa_allow_incomplete
        type: unsigned int
      - name: lsm_aa_raw
        type: struct list_head
      - name: '*lsm_se_context'
        type: char
      - name: '*lsm_se_keyring_context'
        type: char
      - name: keyring_disable_session
        type: bool
      - name: transient_procfs_mnt
        type: bool
      - name: seccomp
        type: struct lxc_seccomp
      - name: maincmd_fd
        type: int
      - name: autodev
        type: unsigned int
      - name: autodevtmpfssize
        type: int
      - name: haltsignal
        type: int
      - name: rebootsignal
        type: int
      - name: stopsignal
        type: int
      - name: '*rcfile'
        type: char
      - name: '*logfile'
        type: char
      - name: loglevel
        type: int
      - name: logfd
        type: int
      - name: start_auto
        type: unsigned int
      - name: start_delay
        type: unsigned int
      - name: start_order
        type: int
      - name: groups
        type: struct list_head
      - name: nbd_idx
        type: int
      - name: monitor_unshare
        type: unsigned int
      - name: monitor_signal_pdeath
        type: unsigned int
      - name: environment
        type: struct list_head
      - name: environment_runtime
        type: struct list_head
      - name: environment_hooks
        type: struct list_head
      - name: '*unexpanded_config'
        type: char
      - name: unexpanded_len
        type: size_t
      - name: unexpanded_alloced
        type: size_t
      - name: '*execute_cmd'
        type: char
      - name: '*init_cmd'
        type: char
      - name: init_uid
        type: uid_t
      - name: init_gid
        type: gid_t
      - name: init_groups
        type: lxc_groups_t
      - name: ephemeral
        type: unsigned int
      - name: '*syslog'
        type: char
      - name: no_new_privs
        type: bool
      - name: limits
        type: struct list_head
      - name: cgroup_meta
        type: struct lxc_cgroup
      - name: '*init_cwd'
        type: char
      - name: state_clients
        type: struct list_head
      - name: sysctls
        type: struct list_head
      - name: procs
        type: struct list_head
      - name: shmount
        type: "struct shmount {\n\t\t/* Absolute path to the shared mount point on
          the host */\n\t\tchar *path_host;\n\t\t/* Absolute path (in the container)
          to the shared mount point */\n\t\tchar *path_cont;\n\t}"
      - name: timens
        type: struct timens_offsets
      - name: sched_core
        type: bool
      - name: sched_core_cookie
        type: __u64
      item_type: struct
      name: lxc_conf
      pos:
        line_end: 586
        line_start: 410
        source_file: /src/lxc/src/lxc/conf.h
    - fields:
      - name: '*path_host'
        type: char
      - name: '*path_cont'
        type: char
      item_type: struct
      name: shmount
      pos:
        line_end: 580
        line_start: 575
        source_file: /src/lxc/src/lxc/conf.h
    typedefs:
    - item_type: typedef
      name: '* scmp_filter_ctx'
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/lxc/src/lxc/conf.h
      type: void
    - item_type: typedef
      name: personality_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/lxc/src/lxc/conf.h
      type: signed long
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/api_extensions.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - must_make_path_relative
  - is_empty_string
  - maybe_empty
  - safe_strlcat
  - strnequal
  - strequal
  - dotdot
  - abspath
  - deabs
  - strnprintf
  - proc_self_fd
  - fdstr
  - lxc_iterate_parts
  source_file: /src/lxc/src/lxc/string_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*lxc_free_fn)(void *)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/lxc/src/lxc/string_utils.h
      type: void
    - item_type: typedef
      name: '*(*lxc_dup_fn)(void *)'
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/lxc/src/lxc/string_utils.h
      type: void
    union: []
- function_names:
  - set_atime
  - mnt_attributes_new
  - mnt_attributes_old
  - __fs_prepare
  - fs_prepare
  - fs_set_property
  - fs_set_flag
  - fs_attach
  - create_detached_idmapped_mount
  - move_detached_mount
  - __fd_bind_mount
  - calc_remount_flags_new
  - calc_remount_flags_old
  - add_required_remount_flags
  - can_use_mount_api
  - can_use_bind_mounts
  - mount_at
  source_file: /src/lxc/src/lxc/mount_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - landlock_create_ruleset
  - landlock_restrict_self
  - landlock_add_rule
  - print_top_failing_dir
  - lxc_put_nsfds
  - lxc_try_preserve_namespace
  - lxc_try_preserve_namespaces
  - match_stdfds
  - match_dlog_fds
  - get_listen_fds_max
  - lxc_check_inherited
  - setup_signal_fd
  - signal_handler
  - lxc_serve_state_clients
  - lxc_serve_state_socket_pair
  - lxc_set_state
  - lxc_mainloop_protect
  - lxc_handler_mainloop_thread_fn
  - lxc_handler_mainloop
  - lxc_poll
  - lxc_put_handler
  - lxc_init_handler
  - lxc_init
  - lxc_expose_namespace_environment
  - lxc_end
  - lxc_abort
  - do_start
  - resolve_clone_flags
  - do_share_ns
  - core_scheduling
  - inherits_namespaces
  - resolve_cgroup_clone_flags
  - lxc_spawn
  - lxc_inherit_namespaces
  - __lxc_start
  - start
  - post_start
  - lxc_start
  - lxc_destroy_container_on_signal
  - lxc_rmdir_onedev_wrapper
  - do_destroy_container
  source_file: /src/lxc/src/lxc/start.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*const *argv'
        type: char
      item_type: struct
      name: start_args
      pos:
        line_end: 2398
        line_start: 2396
        source_file: /src/lxc/src/lxc/start.c
    typedefs: []
    union: []
- function_names:
  - lxc_raw_legacy_clone
  - lxc_raw_clone
  - lxc_raw_clone_cb
  - lxc_raw_pidfd_send_signal
  - lxc_clone
  source_file: /src/lxc/src/lxc/process_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __LXC_STACK_SIZE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/lxc/src/lxc/process_utils.c
      type_or_value: (8 * 1024 * 1024)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/state.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_STATE_LENGTH
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/lxc/src/lxc/state.h
      type_or_value: (8 + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_config_define
  - set_config_unsupported_key
  - get_config_unsupported_key
  - clr_config_unsupported_key
  - lxc_get_config_exact
  - match_config_item
  - lxc_get_config
  - match_config_net_item
  - lxc_get_config_net
  - set_config_net
  - set_config_net_type
  - set_config_net_flags
  - create_matched_ifnames
  - set_config_net_link
  - set_config_net_l2proxy
  - set_config_net_name
  - set_config_net_veth_mode
  - set_config_net_veth_n_rxqueues
  - set_config_net_veth_n_txqueues
  - set_config_net_veth_pair
  - set_config_net_veth_vlan_id
  - set_config_net_veth_vlan_tagged_id
  - set_config_net_macvlan_mode
  - set_config_net_ipvlan_mode
  - set_config_net_ipvlan_isolation
  - set_config_net_hwaddr
  - set_config_net_vlan_id
  - set_config_net_mtu
  - set_config_net_ipv4_address
  - set_config_net_ipv4_gateway
  - set_config_net_veth_ipv4_route
  - set_config_net_ipv6_address
  - set_config_net_ipv6_gateway
  - set_config_net_veth_ipv6_route
  - set_config_net_script_up
  - set_config_net_script_down
  - add_hook
  - set_config_seccomp_allow_nesting
  - set_config_seccomp_notify_cookie
  - set_config_seccomp_notify_proxy
  - set_config_seccomp_profile
  - set_config_execute_cmd
  - set_config_init_cmd
  - set_config_init_cwd
  - set_config_init_uid
  - set_config_init_gid
  - set_config_init_groups
  - set_config_hooks
  - set_config_hooks_version
  - set_config_personality
  - set_config_pty_max
  - set_config_start
  - set_config_monitor
  - set_config_monitor_signal_pdeath
  - set_config_group
  - set_config_environment_impl
  - set_config_environment
  - set_config_environment_runtime
  - set_config_environment_hooks
  - set_config_tty_max
  - set_config_tty_dir
  - set_config_apparmor_profile
  - set_config_apparmor_allow_incomplete
  - set_config_apparmor_allow_nesting
  - set_config_apparmor_raw
  - set_config_selinux_context
  - set_config_selinux_context_keyring
  - set_config_keyring_session
  - set_config_log_file
  - set_config_log_level
  - set_config_autodev
  - set_config_autodev_tmpfs_size
  - set_config_signal_halt
  - set_config_signal_reboot
  - set_config_signal_stop
  - __set_config_cgroup_controller
  - set_config_cgroup_controller
  - set_config_cgroup2_controller
  - set_config_cgroup_dir
  - set_config_cgroup_monitor_dir
  - set_config_cgroup_monitor_pivot_dir
  - set_config_cgroup_container_dir
  - set_config_cgroup_container_inner_dir
  - set_config_cgroup_relative
  - parse_limit_value
  - set_config_prlimit
  - set_config_sysctl
  - set_config_proc
  - set_config_idmaps
  - set_config_mount_fstab
  - set_config_mount_auto
  - set_config_mount
  - add_elem_to_mount_list
  - add_cap_entry
  - set_config_cap_keep
  - set_config_cap_drop
  - set_config_console_path
  - set_config_console_rotate
  - set_config_console_logfile
  - set_config_console_buffer_size
  - set_config_console_size
  - update_hwaddr
  - append_unexp_config_line
  - do_includedir
  - set_config_includefiles
  - set_config_rootfs_path
  - set_config_rootfs_managed
  - set_config_rootfs_mount
  - set_config_rootfs_options
  - set_config_uts_name
  - set_config_namespace_clone
  - set_config_namespace_keep
  - set_config_time_offset_boot
  - set_config_time_offset_monotonic
  - set_config_namespace_share
  - parse_line
  - parse_new_conf_line
  - lxc_config_read
  - lxc_config_define_add
  - lxc_config_define_load
  - lxc_list_for_each
  - lxc_config_define_free
  - lxc_list_for_each_safe
  - lxc_config_parse_arch
  - write_config
  - do_append_unexp_config_line
  - clear_unexp_config_line
  - clone_update_unexp_ovl_paths
  - clone_update_unexp_hooks
  - DO
  - network_new_hwaddrs
  - set_config_ephemeral
  - set_config_log_syslog
  - set_config_no_new_privs
  - get_config_personality
  - get_config_pty_max
  - get_config_tty_max
  - get_config_tty_dir
  - get_config_apparmor_profile
  - get_config_apparmor_allow_incomplete
  - get_config_apparmor_allow_nesting
  - get_config_apparmor_raw
  - get_config_selinux_context
  - get_config_selinux_context_keyring
  - get_config_keyring_session
  - __get_config_cgroup_controller
  - list_for_each_entry
  - get_config_cgroup_controller
  - get_config_cgroup2_controller
  - get_config_cgroup_dir
  - get_config_cgroup_monitor_dir
  - get_config_cgroup_monitor_pivot_dir
  - get_config_cgroup_container_dir
  - get_config_cgroup_container_inner_dir
  - get_config_cgroup_relative
  - get_config_idmaps
  - get_config_log_level
  - get_config_log_file
  - get_config_mount_fstab
  - get_config_mount_auto
  - get_config_mount
  - get_config_rootfs_path
  - get_config_rootfs_managed
  - get_config_rootfs_mount
  - get_config_rootfs_options
  - get_config_uts_name
  - get_config_hooks
  - get_config_hooks_version
  - get_config_net
  - get_config_cap_drop
  - get_config_cap_keep
  - get_config_console_path
  - get_config_console_logfile
  - get_config_console_rotate
  - get_config_console_buffer_size
  - get_config_console_size
  - get_config_seccomp_allow_nesting
  - get_config_seccomp_notify_cookie
  - get_config_seccomp_notify_proxy
  - get_config_seccomp_profile
  - get_config_autodev
  - get_config_autodev_tmpfs_size
  - get_config_signal_halt
  - get_config_signal_reboot
  - get_config_signal_stop
  - get_config_start
  - get_config_log_syslog
  - get_config_monitor
  - get_config_monitor_signal_pdeath
  - get_config_group
  - get_config_environment_impl
  - list_for_each_entry
  - get_config_environment
  - get_config_environment_runtime
  - get_config_environment_hooks
  - get_config_execute_cmd
  - get_config_init_cmd
  - get_config_init_cwd
  - get_config_init_uid
  - get_config_init_gid
  - get_config_init_groups
  - get_config_ephemeral
  - get_config_no_new_privs
  - get_config_prlimit
  - get_config_sysctl
  - get_config_proc
  - get_config_namespace_clone
  - get_config_namespace_keep
  - get_config_time_offset_boot
  - get_config_time_offset_monotonic
  - get_config_namespace_share
  - clr_config_personality
  - clr_config_pty_max
  - clr_config_tty_max
  - clr_config_tty_dir
  - clr_config_apparmor_profile
  - clr_config_apparmor_allow_incomplete
  - clr_config_apparmor_allow_nesting
  - clr_config_apparmor_raw
  - clr_config_selinux_context
  - clr_config_selinux_context_keyring
  - clr_config_keyring_session
  - clr_config_cgroup_controller
  - clr_config_cgroup2_controller
  - clr_config_cgroup_dir
  - clr_config_cgroup_monitor_dir
  - clr_config_cgroup_monitor_pivot_dir
  - clr_config_cgroup_container_dir
  - clr_config_cgroup_container_inner_dir
  - clr_config_cgroup_relative
  - clr_config_idmaps
  - clr_config_log_level
  - clr_config_log_file
  - clr_config_mount
  - clr_config_mount_auto
  - clr_config_mount_fstab
  - clr_config_rootfs_path
  - clr_config_rootfs_managed
  - clr_config_rootfs_mount
  - clr_config_rootfs_options
  - clr_config_uts_name
  - clr_config_hooks
  - clr_config_hooks_version
  - clr_config_net
  - clr_config_cap_drop
  - clr_config_cap_keep
  - clr_config_console_path
  - clr_config_console_logfile
  - clr_config_console_rotate
  - clr_config_console_buffer_size
  - clr_config_console_size
  - clr_config_seccomp_allow_nesting
  - clr_config_seccomp_notify_cookie
  - clr_config_seccomp_notify_proxy
  - clr_config_seccomp_profile
  - clr_config_autodev
  - clr_config_autodev_tmpfs_size
  - clr_config_signal_halt
  - clr_config_signal_reboot
  - clr_config_signal_stop
  - clr_config_start
  - clr_config_log_syslog
  - clr_config_monitor
  - clr_config_monitor_signal_pdeath
  - clr_config_group
  - clr_config_environment
  - clr_config_environment_runtime
  - clr_config_environment_hooks
  - clr_config_execute_cmd
  - clr_config_init_cmd
  - clr_config_init_cwd
  - clr_config_init_uid
  - clr_config_init_gid
  - clr_config_init_groups
  - clr_config_ephemeral
  - clr_config_no_new_privs
  - clr_config_prlimit
  - clr_config_sysctl
  - clr_config_proc
  - clr_config_includefiles
  - clr_config_namespace_clone
  - clr_config_namespace_keep
  - clr_config_time_offset_boot
  - clr_config_time_offset_monotonic
  - clr_config_namespace_share
  - get_config_includefiles
  - get_network_config_ops
  - set_config_jump_table_net
  - clr_config_jump_table_net
  - clr_config_net_type
  - clr_config_net_name
  - clr_config_net_flags
  - clr_config_net_link
  - clr_config_net_l2proxy
  - clr_config_net_macvlan_mode
  - clr_config_net_ipvlan_mode
  - clr_config_net_ipvlan_isolation
  - clr_config_net_veth_mode
  - clr_config_net_veth_n_rxqueues
  - clr_config_net_veth_n_txqueues
  - clr_config_net_veth_pair
  - clr_config_net_veth_vlan_id
  - clr_config_net_veth_vlan_tagged_id
  - clr_config_net_script_up
  - clr_config_net_script_down
  - clr_config_net_hwaddr
  - clr_config_net_mtu
  - clr_config_net_vlan_id
  - clr_config_net_ipv4_gateway
  - clr_config_net_ipv4_address
  - clr_config_net_veth_ipv4_route
  - clr_config_net_ipv6_gateway
  - clr_config_net_ipv6_address
  - clr_config_net_veth_ipv6_route
  - get_config_jump_table_net
  - get_config_net_type
  - get_config_net_flags
  - get_config_net_link
  - get_config_net_l2proxy
  - get_config_net_name
  - get_config_net_macvlan_mode
  - get_config_net_ipvlan_mode
  - get_config_net_ipvlan_isolation
  - get_config_net_veth_mode
  - get_config_net_veth_n_rxqueues
  - get_config_net_veth_n_txqueues
  - get_config_net_veth_pair
  - get_config_net_veth_vlan_id
  - get_config_net_veth_vlan_tagged_id
  - get_config_net_script_up
  - get_config_net_script_down
  - get_config_net_hwaddr
  - get_config_net_mtu
  - get_config_net_vlan_id
  - get_config_net_ipv4_gateway
  - get_config_net_ipv4_address
  - get_config_net_veth_ipv4_route
  - get_config_net_ipv6_gateway
  - get_config_net_ipv6_address
  - get_config_net_veth_ipv6_route
  - lxc_list_config_items
  - lxc_list_subkeys
  - lxc_list_net
  - set_config_sched_core
  - get_config_sched_core
  - clr_config_sched_core
  source_file: /src/lxc/src/lxc/confile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_SUBKEY_LEN_MAX
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/lxc/src/lxc/confile.c
      type_or_value: '256'
    - item_type: preproc_def
      name: __LXC_IDMAP_STR_BUF
      pos:
        line_end: 4072
        line_start: 4071
        source_file: /src/lxc/src/lxc/confile.c
      type_or_value: (3 * INTTYPE_TO_STRLEN(uint32_t) + 3 + 1 + 1)
    structs:
    - fields: []
      item_type: struct
      name: lxc_config_net_t
      pos:
        line_end: 292
        line_start: 290
        source_file: /src/lxc/src/lxc/confile.c
    - fields:
      - name: '*token'
        type: char
      - name: mask
        type: int
      - name: flag
        type: int
      item_type: struct
      name: "allowed_auto_mounts[] = {\n\t\t{ \"proc\",\t\t\tLXC_AUTO_PROC_MASK,\tLXC_AUTO_PROC_MIXED\t\t\t\t\t},\n\t\t{
        \"proc:mixed\",\t\t\tLXC_AUTO_PROC_MASK,\tLXC_AUTO_PROC_MIXED\t\t\t\t\t},\n\t\t{
        \"proc:rw\",\t\t\tLXC_AUTO_PROC_MASK,\tLXC_AUTO_PROC_RW\t\t\t\t\t},\n\t\t{
        \"sys\",\t\t\tLXC_AUTO_SYS_MASK,\tLXC_AUTO_SYS_MIXED\t\t\t\t\t},\n\t\t{ \"sys:ro\",\t\t\tLXC_AUTO_SYS_MASK,\tLXC_AUTO_SYS_RO\t\t\t\t\t\t},\n\t\t{
        \"sys:mixed\",\t\t\tLXC_AUTO_SYS_MASK,\tLXC_AUTO_SYS_MIXED\t\t\t\t\t},\n\t\t{
        \"sys:rw\",\t\t\tLXC_AUTO_SYS_MASK,\tLXC_AUTO_SYS_RW\t\t\t\t\t\t},\n\t\t{
        \"cgroup2\",\t\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP2_RW | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{
        \"cgroup2:ro\",\t\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP2_RO | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{
        \"cgroup2:force\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP2_RW | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{
        \"cgroup2:ro:force\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP2_RO | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{
        \"cgroup\",\t\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_NOSPEC\t\t\t\t\t},\n\t\t{
        \"cgroup:mixed\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_MIXED\t\t\t\t\t},\n\t\t{
        \"cgroup:ro\",\t\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_RO\t\t\t\t\t},\n\t\t{
        \"cgroup:rw\",\t\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_RW\t\t\t\t\t},\n\t\t{
        \"cgroup:force\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_NOSPEC | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{
        \"cgroup:mixed:force\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_MIXED |
        LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{ \"cgroup:ro:force\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_RO
        | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{ \"cgroup:rw:force\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_RW
        | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{ \"cgroup-full\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_NOSPEC\t\t\t\t},\n\t\t{
        \"cgroup-full:mixed\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_MIXED\t\t\t\t},\n\t\t{
        \"cgroup-full:ro\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_RO\t\t\t\t\t},\n\t\t{
        \"cgroup-full:rw\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_RW\t\t\t\t\t},\n\t\t{
        \"cgroup-full:force\",\t\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_NOSPEC
        | LXC_AUTO_CGROUP_FORCE\t},\n\t\t{ \"cgroup-full:mixed:force\",\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_MIXED
        | LXC_AUTO_CGROUP_FORCE\t},\n\t\t{ \"cgroup-full:ro:force\",\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_RO
        | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{ \"cgroup-full:rw:force\",\tLXC_AUTO_CGROUP_MASK,\tLXC_AUTO_CGROUP_FULL_RW
        | LXC_AUTO_CGROUP_FORCE\t\t},\n\t\t{ \"shmounts:\",\t\t\tLXC_AUTO_SHMOUNTS_MASK,\tLXC_AUTO_SHMOUNTS\t\t\t\t\t},\n\t\t/*\n\t\t
        * For adding anything that is just a single on/off, but has no\n\t\t * options:
        keep mask and flag identical and just define the\n\t\t * enum value as an
        unused bit so far\n\t\t */\n\t\t{ NULL,\t\t\t\t0,\t\t\t0\t\t\t\t\t\t\t}\n\t}"
      pos:
        line_end: 2341
        line_start: 2337
        source_file: /src/lxc/src/lxc/confile.c
    - fields:
      - name: '*conf'
        type: struct lxc_conf
      - name: from_include
        type: bool
      item_type: struct
      name: parse_line_conf
      pos:
        line_end: 3071
        line_start: 3068
        source_file: /src/lxc/src/lxc/confile.c
    - fields:
      - name: '*name'
        type: char
      - name: per
        type: unsigned long
      item_type: struct
      name: per_name
      pos:
        line_end: 3277
        line_start: 3274
        source_file: /src/lxc/src/lxc/confile.c
    - fields:
      - name: buf[NETWORK_SUBKEY_SIZE_MAX]
        type: char
      - name: '*subkey'
        type: char
      - name: '*ops'
        type: struct lxc_config_net_t
      - name: '*netdev'
        type: struct lxc_netdev
      item_type: struct
      name: config_net_info
      pos:
        line_end: 5409
        line_start: 5404
        source_file: /src/lxc/src/lxc/confile.c
    typedefs: []
    union: []
- function_names:
  - lxc_abstract_unix_set_sockaddr
  - lxc_abstract_unix_open
  - lxc_abstract_unix_close
  - lxc_abstract_unix_connect
  - lxc_abstract_unix_send_fds_iov
  - lxc_abstract_unix_send_fds
  - lxc_unix_send_fds
  - __lxc_abstract_unix_send_two_fds
  - lxc_abstract_unix_recv_fds_iov
  - lxc_abstract_unix_recv_fds
  - lxc_abstract_unix_recv_one_fd
  - __lxc_abstract_unix_recv_two_fds
  - lxc_abstract_unix_send_credential
  - lxc_abstract_unix_rcv_credential
  - lxc_unix_sockaddr
  - lxc_unix_connect_type
  - lxc_unix_connect
  - lxc_socket_set_timeout
  source_file: /src/lxc/src/lxc/af_unix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/rexec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_cmd_str
  - __transfer_cgroup_ctx_fds
  - __transfer_cgroup_fd
  - lxc_cmd_rsp_recv_fds
  - lxc_cmd_rsp_recv
  - __lxc_cmd_rsp_send
  - lxc_cmd_rsp_send_reap
  - lxc_cmd_rsp_send_keep
  - rsp_one_fd_reap
  - rsp_one_fd_keep
  - rsp_many_fds_reap
  - lxc_cmd_send
  - lxc_cmd_timeout
  - lxc_cmd
  - lxc_try_cmd
  - validate_string_request
  - lxc_cmd_get_init_pid
  - lxc_cmd_get_init_pid_callback
  - lxc_cmd_get_init_pidfd
  - lxc_cmd_get_init_pidfd_callback
  - lxc_cmd_get_devpts_fd
  - lxc_cmd_get_devpts_fd_callback
  - lxc_cmd_get_seccomp_notify_fd
  - lxc_cmd_get_seccomp_notify_fd_callback
  - lxc_cmd_get_cgroup_ctx
  - lxc_cmd_get_cgroup_ctx_callback
  - lxc_cmd_get_clone_flags
  - lxc_cmd_get_clone_flags_callback
  - lxc_cmd_get_cgroup_path_callback
  - lxc_cmd_get_cgroup_path
  - lxc_cmd_get_limit_cgroup_path
  - __lxc_cmd_get_cgroup_callback
  - lxc_cmd_get_cgroup_callback
  - lxc_cmd_get_limit_cgroup_callback
  - lxc_cmd_get_config_item
  - lxc_cmd_get_config_item_callback
  - lxc_cmd_get_state
  - lxc_cmd_get_state_callback
  - lxc_cmd_stop
  - lxc_cmd_stop_callback
  - lxc_cmd_terminal_winch
  - lxc_cmd_terminal_winch_callback
  - lxc_cmd_get_tty_fd
  - lxc_cmd_get_tty_fd_callback
  - lxc_cmd_get_name
  - lxc_cmd_get_name_callback
  - lxc_cmd_get_lxcpath
  - lxc_cmd_get_lxcpath_callback
  - lxc_cmd_get_systemd_scope
  - lxc_cmd_get_systemd_scope_callback
  - lxc_cmd_add_state_client
  - lxc_cmd_add_state_client_callback
  - lxc_cmd_add_bpf_device_cgroup
  - lxc_cmd_add_bpf_device_cgroup_callback
  - lxc_cmd_console_log
  - lxc_cmd_console_log_callback
  - lxc_cmd_serve_state_clients
  - lxc_cmd_serve_state_clients_callback
  - lxc_cmd_seccomp_notify_add_listener
  - lxc_cmd_seccomp_notify_add_listener_callback
  - lxc_cmd_freeze
  - lxc_cmd_freeze_callback
  - lxc_cmd_unfreeze
  - lxc_cmd_unfreeze_callback
  - lxc_cmd_get_cgroup_fd
  - lxc_cmd_get_limit_cgroup_fd
  - __lxc_cmd_get_cgroup_fd_callback
  - lxc_cmd_get_cgroup_fd_callback
  - lxc_cmd_get_limit_cgroup_fd_callback
  - lxc_cmd_get_cgroup2_fd
  - lxc_cmd_get_limit_cgroup2_fd
  - __lxc_cmd_get_cgroup2_fd_callback
  - lxc_cmd_get_cgroup2_fd_callback
  - lxc_cmd_get_limit_cgroup2_fd_callback
  - lxc_cmd_rsp_send_enosys
  - lxc_cmd_process
  - lxc_cmd_fd_cleanup
  - lxc_cmd_cleanup_handler
  - lxc_cmd_handler
  - lxc_cmd_accept
  - lxc_server_init
  - lxc_cmd_mainloop_add
  source_file: /src/lxc/src/lxc/commands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*callback)(int, struct lxc_cmd_req *, struct lxc_handler *,\n\t\t\t\tstruct
        lxc_async_descr *)"
      pos:
        line_end: 1940
        line_start: 1939
        source_file: /src/lxc/src/lxc/commands.c
      type: int
    union: []
- function_names:
  - my_parser
  - create_helpfn
  - validate_bdev_args
  - lxc_create_main
  source_file: /src/lxc/src/lxc/tools/lxc_create.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parser
  - etoc
  - lxc_console_main
  source_file: /src/lxc/src/lxc/tools/lxc_console.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_info
  - lxc_error
  - lxc_sys_error
  source_file: /src/lxc/src/lxc/tools/arguments.h
  types:
    enum:
    - enumerators:
      - name: CLONE
      - name: LIST
      - name: RESTORE
      - name: SNAP
      - name: DESTROY
      - name: RENAME
      item_type: enum
      name: task
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/lxc/src/lxc/tools/arguments.h
    preproc_defs:
    - item_type: preproc_def
      name: LXC_COMMON_OPTIONS
      pos:
        line_end: 148
        line_start: 136
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: "{ \"name\",        required_argument, 0, 'n'         },              \\\n\t
        \   { \"help\",        no_argument,       0, 'h'         },              \\\n\t
        \   { \"help\",        no_argument,       0, '?'         },              \\\n\t
        \   { \"usage\",       no_argument,       0, OPT_USAGE   },              \\\n\t
        \   { \"version\",     no_argument,       0, OPT_VERSION },              \\\n\t
        \   { \"quiet\",       no_argument,       0, 'q'         },              \\\n\t
        \   { \"logfile\",     required_argument, 0, 'o'         },              \\\n\t
        \   { \"logpriority\", required_argument, 0, 'l'         },              \\\n\t
        \   { \"lxcpath\",     required_argument, 0, 'P'         },              \\\n\t
        \   { \"rcfile\",      required_argument, 0, OPT_RCFILE  },              \\\n\t
        \   { 0,             0,                 0, 0           }"
    - item_type: preproc_def
      name: OPT_USAGE
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: OPT_VERSION
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: OPT_USAGE - 1
    - item_type: preproc_def
      name: OPT_RCFILE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: OPT_USAGE - 2
    - item_type: preproc_def
      name: OPT_SHARE_NET
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: OPT_USAGE - 3
    - item_type: preproc_def
      name: OPT_SHARE_IPC
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: OPT_USAGE - 4
    - item_type: preproc_def
      name: OPT_SHARE_UTS
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: OPT_USAGE - 5
    - item_type: preproc_def
      name: OPT_SHARE_PID
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type_or_value: OPT_USAGE - 6
    structs:
    - fields:
      - name: '*help'
        type: char
      - name: (*helpfn)(const struct lxc_arguments *)
        type: void
      - name: '*progname'
        type: char
      - name: '*options'
        type: struct option
      - name: parser
        type: lxc_arguments_parser_t
      - name: checker
        type: lxc_arguments_checker_t
      - name: '*name'
        type: char
      - name: '*log_file'
        type: char
      - name: '*log_priority'
        type: char
      - name: quiet
        type: int
      - name: daemonize
        type: int
      - name: '*rcfile'
        type: char
      - name: '*console'
        type: char
      - name: '*console_log'
        type: char
      - name: '*pidfile'
        type: char
      - name: '**lxcpath'
        type: char
      - name: lxcpath_cnt
        type: int
      - name: lxcpath_additional
        type: int
      - name: '*share_ns[32]'
        type: char
      - name: ttynum
        type: unsigned int
      - name: escape
        type: char
      - name: '*states'
        type: char
      - name: timeout
        type: long
      - name: shutdown
        type: int
      - name: hardstop
        type: int
      - name: nokill
        type: int
      - name: nolock
        type: int
      - name: nowait
        type: int
      - name: reboot
        type: int
      - name: force
        type: int
      - name: close_all_fds
        type: bool
      - name: '*bdevtype'
        type: char
      - name: '*fstype'
        type: char
      - name: fssize
        type: uint64_t
      - name: '*lvname'
        type: char
      - name: '*rbdname'
        type: char
      - name: '*zfsroot'
        type: char
      - name: uid
        type: uid_t
      - name: gid
        type: gid_t
      - name: all
        type: int
      - name: ignore_auto
        type: int
      - name: list
        type: int
      - name: '*groups'
        type: char
      - name: task
        type: "enum task {\n\t\tCLONE,\n\t\tDESTROY,\n\t\tLIST,\n\t\tRESTORE,\n\t\tSNAP,\n\t\tRENAME,\n\t}"
      - name: print_comments
        type: int
      - name: '*commentfile'
        type: char
      - name: '*newname'
        type: char
      - name: '*newpath'
        type: char
      - name: '*snapname'
        type: char
      - name: keepdata
        type: int
      - name: keepname
        type: int
      - name: keepmac
        type: int
      - name: allowrunning
        type: int
      - name: '*ls_fancy_format'
        type: char
      - name: '*ls_filter'
        type: char
      - name: ls_nesting
        type: unsigned int
      - name: ls_active
        type: bool
      - name: ls_fancy
        type: bool
      - name: ls_frozen
        type: bool
      - name: ls_line
        type: bool
      - name: ls_running
        type: bool
      - name: ls_stopped
        type: bool
      - name: ls_defined
        type: bool
      - name: tmpfs
        type: bool
      - name: flags
        type: int
      - name: want_default_mounts
        type: int
      - name: '*want_hostname'
        type: char
      - name: setuid
        type: bool
      - name: '*const *argv'
        type: char
      - name: argc
        type: int
      - name: '*data'
        type: void
      item_type: struct
      name: lxc_arguments
      pos:
        line_end: 134
        line_start: 21
        source_file: /src/lxc/src/lxc/tools/arguments.h
    typedefs:
    - item_type: typedef
      name: (*lxc_arguments_parser_t)(struct lxc_arguments *, int, char *)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type: int
    - item_type: typedef
      name: (*lxc_arguments_checker_t)(const struct lxc_arguments *)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/lxc/src/lxc/tools/arguments.h
      type: int
    union: []
- function_names:
  - main
  source_file: /src/lxc/src/lxc/tools/lxc_multicall.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/lxc/src/lxc/tools/lxc_multicall.c
      type_or_value: '"lxc-"'
    structs:
    - fields:
      - name: '*cmd'
        type: char
      - name: (*main)(int argc, char *argv[])
        type: int
      item_type: struct
      name: "applets[] = {\n\t{ \"attach\", lxc_attach_main },\n\t{ \"autostart\",
        lxc_autostart_main },\n\t{ \"cgroup\", lxc_cgroup_main },\n\t{ \"checkpoint\",
        lxc_checkpoint_main },\n\t{ \"config\", lxc_config_main },\n\t{ \"console\",
        lxc_console_main },\n\t{ \"copy\", lxc_copy_main },\n\t{ \"create\", lxc_create_main
        },\n\t{ \"destroy\", lxc_destroy_main },\n\t{ \"device\", lxc_device_main
        },\n\t{ \"execute\", lxc_execute_main },\n\t{ \"freeze\", lxc_freeze_main
        },\n\t{ \"info\", lxc_info_main },\n\t{ \"ls\", lxc_ls_main },\n\t{ \"monitor\",
        lxc_monitor_main },\n\t{ \"snapshot\", lxc_snapshot_main },\n\t{ \"start\",
        lxc_start_main },\n\t{ \"stop\", lxc_stop_main },\n\t{ \"top\", lxc_top_main
        },\n\t{ \"unfreeze\", lxc_unfreeze_main },\n\t{ \"unshare\", lxc_unshare_main
        },\n\t{ \"wait\", lxc_wait_main }\n}"
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/lxc/src/lxc/tools/lxc_multicall.c
    typedefs: []
    union: []
- function_names:
  - my_parser
  - close_fds
  - lxc_tool_check_inherited
  - lxc_tool_monitord_spawn
  - lxc_monitor_main
  source_file: /src/lxc/src/lxc/tools/lxc_monitor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_MONITORD_PATH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/lxc/src/lxc/tools/lxc_monitor.c
      type_or_value: LIBEXECDIR "/lxc/lxc-monitord"
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parser
  - do_destroy
  - do_destroy_with_snapshots
  - lxc_destroy_main
  source_file: /src/lxc/src/lxc/tools/lxc_destroy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parser
  - get_namespace_flags
  - lookup_user
  - mount_fs
  - lxc_setup_fs
  - do_start
  - free_ifname_list
  - lxc_unshare_main
  source_file: /src/lxc/src/lxc/tools/lxc_unshare.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*const *args'
        type: char
      - name: flags
        type: int
      - name: uid
        type: uid_t
      - name: setuid
        type: bool
      - name: want_default_mounts
        type: int
      - name: wait_fd
        type: int
      - name: '*want_hostname'
        type: char
      item_type: struct
      name: start_arg
      pos:
        line_end: 41
        line_start: 33
        source_file: /src/lxc/src/lxc/tools/lxc_unshare.c
    typedefs: []
    union: []
- function_names:
  - my_parser
  - str_chomp
  - size_humanize
  - str_size_humanize
  - print_net_stats
  - print_stats
  - print_info_msg_int
  - print_info_msg_str
  - print_info
  - lxc_info_main
  source_file: /src/lxc/src/lxc/tools/lxc_info.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*file'
        type: char
      item_type: struct
      name: "lxstat[] = {\n\t\t{ \"Memory use:\", \"memory.usage_in_bytes\" },\n\t\t{
        \"KMem use:\",   \"memory.kmem.usage_in_bytes\" },\n\t\t{ NULL, NULL },\n\t}"
      pos:
        line_end: 238
        line_start: 235
        source_file: /src/lxc/src/lxc/tools/lxc_info.c
    typedefs: []
    union: []
- function_names:
  - my_parser
  - lxc_stop_main
  source_file: /src/lxc/src/lxc/tools/lxc_stop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPT_NO_LOCK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/lxc/tools/lxc_stop.c
      type_or_value: (OPT_USAGE + 1)
    - item_type: preproc_def
      name: OPT_NO_KILL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/lxc/tools/lxc_stop.c
      type_or_value: (OPT_USAGE + 2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_interface
  - lxc_device_main
  source_file: /src/lxc/src/lxc/tools/lxc_device.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parser
  - stdin_tios_restore
  - stdin_tios_setup
  - stdin_tios_rows
  - sig_handler
  - size_humanize
  - stat_get_int
  - stat_match_get_int
  - stat_get_blk_stats
  - stats_get
  - stats_print_header
  - stats_print
  - cmp_name
  - cmp_cpuuse
  - cmp_blkio
  - cmp_memory
  - cmp_memorysw
  - cmp_kmemory
  - ct_sort
  - ct_free
  - ct_realloc
  - stdin_handler
  - lxc_top_main
  source_file: /src/lxc/src/lxc/tools/lxc_top.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USER_HZ
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
      type_or_value: '100'
    - item_type: preproc_def
      name: ESC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
      type_or_value: '"\033"'
    - item_type: preproc_def
      name: TERMCLEAR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
      type_or_value: ESC "[H" ESC "[J"
    - item_type: preproc_def
      name: TERMNORM
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
      type_or_value: ESC "[0m"
    - item_type: preproc_def
      name: TERMBOLD
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
      type_or_value: ESC "[1m"
    - item_type: preproc_def
      name: TERMRVRS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
      type_or_value: ESC "[7m"
    structs:
    - fields:
      - name: read
        type: uint64_t
      - name: write
        type: uint64_t
      - name: total
        type: uint64_t
      item_type: struct
      name: blkio_stats
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
    - fields:
      - name: mem_used
        type: uint64_t
      - name: mem_limit
        type: uint64_t
      - name: memsw_used
        type: uint64_t
      - name: memsw_limit
        type: uint64_t
      - name: kmem_used
        type: uint64_t
      - name: kmem_limit
        type: uint64_t
      - name: cpu_use_nanos
        type: uint64_t
      - name: cpu_use_user
        type: uint64_t
      - name: cpu_use_sys
        type: uint64_t
      - name: io_service_bytes
        type: struct blkio_stats
      - name: io_serviced
        type: struct blkio_stats
      item_type: struct
      name: stats
      pos:
        line_end: 49
        line_start: 37
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
    - fields:
      - name: '*c'
        type: struct lxc_container
      - name: '*stats'
        type: struct stats
      item_type: struct
      name: container_stats
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/lxc/src/lxc/tools/lxc_top.c
    typedefs: []
    union: []
- function_names:
  - my_checker
  - lxc_cgroup_main
  source_file: /src/lxc/src/lxc/tools/lxc_cgroup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_shortopts
  - print_usage_exit
  - print_version_exit
  - print_help_exit
  - lxc_arguments_lxcpath_add
  - lxc_arguments_parse
  - lxc_arguments_str_to_int
  - lxc_setup_shared_ns
  source_file: /src/lxc/src/lxc/tools/arguments.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_snapshot_main
  - do_snapshot_task
  - my_parser
  - do_snapshot
  - do_snapshot_destroy
  - do_snapshot_list
  - do_snapshot_restore
  - print_file
  source_file: /src/lxc/src/lxc/tools/lxc_snapshot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_ls_main
  - ls_free
  - ls_get_config_item
  - ls_free_arr
  - ls_get
  - ls_get_cgroup_item
  - ls_get_groups
  - ls_get_ips
  - ls_get_interface
  - ls_get_swap
  - ls_get_term_width
  - ls_has_all_grps
  - ls_new
  - ls_print_names
  - ls_print_fancy_format
  - ls_print_table
  - my_parser
  - ls_get_wrapper
  - ls_remove_lock
  - ls_send_str
  - ls_serialize
  - ls_recv_str
  - ls_deserialize
  - ls_field_width
  source_file: /src/lxc/src/lxc/tools/lxc_ls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_NESTLVL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '5'
    - item_type: preproc_def
      name: LS_FROZEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LS_STOPPED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LS_ACTIVE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LS_RUNNING
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '4'
    - item_type: preproc_def
      name: LS_NESTING
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '5'
    - item_type: preproc_def
      name: LS_FILTER
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '6'
    - item_type: preproc_def
      name: LS_DEFINED
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SOCK_CLOEXEC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
      type_or_value: '02000000'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*state'
        type: char
      - name: '*groups'
        type: char
      - name: '*interface'
        type: char
      - name: '*ipv4'
        type: char
      - name: '*ipv6'
        type: char
      - name: nestlvl
        type: unsigned int
      - name: init
        type: pid_t
      - name: ram
        type: double
      - name: swap
        type: double
      - name: autostart
        type: bool
      - name: running
        type: bool
      - name: unprivileged
        type: bool
      item_type: struct
      name: ls
      pos:
        line_end: 59
        line_start: 45
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
    - fields:
      - name: name_length
        type: unsigned int
      - name: state_length
        type: unsigned int
      - name: groups_length
        type: unsigned int
      - name: interface_length
        type: unsigned int
      - name: ipv4_length
        type: unsigned int
      - name: ipv6_length
        type: unsigned int
      - name: init_length
        type: unsigned int
      - name: ram_length
        type: unsigned int
      - name: swap_length
        type: unsigned int
      - name: autostart_length
        type: unsigned int
      - name: unprivileged_length
        type: unsigned int
      item_type: struct
      name: lengths
      pos:
        line_end: 74
        line_start: 62
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
    - fields:
      - name: '*args'
        type: struct lxc_arguments
      - name: '**grps_must'
        type: char
      - name: grps_must_len
        type: size_t
      - name: pipefd[2]
        type: int
      - name: '*size'
        type: size_t
      - name: '*parent'
        type: char
      - name: nestlvl
        type: unsigned int
      item_type: struct
      name: wrapargs
      pos:
        line_end: 101
        line_start: 93
        source_file: /src/lxc/src/lxc/tools/lxc_ls.c
    typedefs: []
    union: []
- function_names:
  - lxc_attach_rexec
  - my_parser
  - lxc_fill_elevated_privileges
  - add_to_simple_array
  - stdfd_is_pty
  - lxc_attach_create_log_file
  - lxc_attach_main
  source_file: /src/lxc/src/lxc/tools/lxc_attach.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*token'
        type: char
      - name: flag
        type: int
      item_type: struct
      name: "all_privs[] = {\n\t\t{ \"CGROUP\", LXC_ATTACH_MOVE_TO_CGROUP    },\n\t\t{
        \"CAP\",    LXC_ATTACH_DROP_CAPABILITIES },\n\t\t{ \"LSM\",    LXC_ATTACH_LSM_EXEC
        \         },\n\t\t{ NULL,     0                            }\n\t}"
      pos:
        line_end: 223
        line_start: 220
        source_file: /src/lxc/src/lxc/tools/lxc_attach.c
    typedefs: []
    union: []
- function_names:
  - my_parser
  - set_argv
  - lxc_execute_main
  source_file: /src/lxc/src/lxc/tools/lxc_execute.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parser
  - my_checker
  - checkpoint
  - restore_finalize
  - restore
  - lxc_checkpoint_main
  source_file: /src/lxc/src/lxc/tools/lxc_checkpoint.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPT_PREDUMP_DIR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/lxc/tools/lxc_checkpoint.c
      type_or_value: (OPT_USAGE + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_unfreeze_main
  source_file: /src/lxc/src/lxc/tools/lxc_unfreeze.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parser
  - list_contains_entry
  - lxc_list_for_each
  - accumulate_list
  - get_list
  - lxc_iterate_parts
  - get_config_list
  - get_config_integer
  - cmporder
  - cmporder_reverse
  - toss_list
  - lxc_list_for_each_safe
  - lxc_autostart_main
  - lxc_list_for_each
  source_file: /src/lxc/src/lxc/tools/lxc_autostart.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - list_config_items
  - lxc_config_main
  source_file: /src/lxc/src/lxc/tools/lxc_config.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      item_type: struct
      name: lxc_config_items
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/lxc/src/lxc/tools/lxc_config.c
    typedefs: []
    union: []
- function_names:
  - lxc_copy_main
  - add_mnt
  - mk_rand_ovl_dirs
  - lxc_normalize_path
  - construct_path
  - set_mnt_entry
  - do_clone
  - do_clone_ephemeral
  - do_clone_rename
  - do_clone_task
  - free_mnts
  - my_parser
  - parse_bind_mnt
  - parse_mntsubopts
  - parse_ovl_mnt
  - mount_tmpfs
  source_file: /src/lxc/src/lxc/tools/lxc_copy.c
  types:
    enum:
    - enumerators:
      - name: LXC_MNT_BIND
      - name: LXC_MNT_OVL
      item_type: enum
      name: mnttype
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/lxc/src/lxc/tools/lxc_copy.c
    preproc_defs: []
    structs:
    - fields:
      - name: mnt_type
        type: enum mnttype
      - name: '*src'
        type: char
      - name: '*dest'
        type: char
      - name: '*options'
        type: char
      - name: '*upper'
        type: char
      - name: '*workdir'
        type: char
      - name: '*lower'
        type: char
      item_type: struct
      name: mnts
      pos:
        line_end: 45
        line_start: 37
        source_file: /src/lxc/src/lxc/tools/lxc_copy.c
    typedefs: []
    union: []
- function_names:
  - my_parser
  - ensure_path
  - lxc_start_main
  source_file: /src/lxc/src/lxc/tools/lxc_start.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_freeze_main
  source_file: /src/lxc/src/lxc/tools/lxc_freeze.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_parser
  - my_checker
  - lxc_wait_main
  source_file: /src/lxc/src/lxc/tools/lxc_wait.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/tools/include/getsubopt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getsubopt
  source_file: /src/lxc/src/lxc/tools/include/getsubopt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_monitord_fifo_create
  - lxc_monitord_fifo_delete
  - lxc_monitord_sockfd_remove
  - lxc_monitord_sock_handler
  - lxc_monitord_sock_accept
  - lxc_monitord_sock_create
  - lxc_monitord_sock_delete
  - lxc_monitord_create
  - lxc_monitord_delete
  - lxc_monitord_fifo_handler
  - lxc_monitord_mainloop_add
  - lxc_monitord_sig_handler
  - main
  source_file: /src/lxc/src/lxc/cmd/lxc_monitord.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLIENTFDS_CHUNK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/lxc/cmd/lxc_monitord.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*lxcpath'
        type: char
      - name: fifofd
        type: int
      - name: listenfd
        type: int
      - name: '*clientfds'
        type: int
      - name: clientfds_size
        type: int
      - name: clientfds_cnt
        type: int
      - name: descr
        type: struct lxc_async_descr
      item_type: struct
      name: lxc_monitor
      pos:
        line_end: 55
        line_start: 47
        source_file: /src/lxc/src/lxc/cmd/lxc_monitord.c
    typedefs: []
    union: []
- function_names:
  - usernic_debug_stream
  - usernic_error
  - cmd_error_errno
  - usage
  - open_and_lock
  - get_username
  - get_groupnames
  - name_is_in_groupnames
  - append_alloted
  - free_alloted
  - get_alloted
  - get_eol
  - get_eow
  - find_line
  - instantiate_veth
  - get_mtu
  - create_nic
  - cull_entries
  - count_entries
  - get_nic_if_avail
  - create_db_dir
  - lxc_secure_rename_in_ns
  - may_access_netns
  - is_privileged_over_netns
  - validate_args
  - main
  source_file: /src/lxc/src/lxc/cmd/lxc_user_nic.c
  types:
    enum:
    - enumerators:
      - name: LXC_USERNIC_CREATE
        value: '0'
      - name: LXC_USERNIC_DELETE
        value: '1'
      item_type: enum
      name: lxc_user_nic_command
      pos:
        line_end: 959
        line_start: 956
        source_file: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    preproc_defs:
    - item_type: preproc_def
      name: NETDEV_MTU_DEFAULT
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/lxc/src/lxc/cmd/lxc_user_nic.c
      type_or_value: '1500'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: allowed
        type: int
      - name: '*next'
        type: struct alloted_s
      item_type: struct
      name: alloted_s
      pos:
        line_end: 231
        line_start: 227
        source_file: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    - fields:
      - name: '*start'
        type: char
      - name: len
        type: int
      - name: keep
        type: bool
      item_type: struct
      name: entry_line
      pos:
        line_end: 575
        line_start: 571
        source_file: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    - fields:
      - name: '*cmd'
        type: char
      - name: '*lxc_path'
        type: char
      - name: '*lxc_name'
        type: char
      - name: '*pid'
        type: char
      - name: '*type'
        type: char
      - name: '*link'
        type: char
      - name: '*veth_name'
        type: char
      item_type: struct
      name: user_nic_args
      pos:
        line_end: 954
        line_start: 946
        source_file: /src/lxc/src/lxc/cmd/lxc_user_nic.c
    typedefs: []
    union: []
- function_names:
  - QUOTE
  - QUOTEVAL
  - print_usage_exit
  - print_version_exit
  - print_help
  - arguments_parse
  - main
  source_file: /src/lxc/src/lxc/cmd/lxc_init.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPT_USAGE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/lxc/cmd/lxc_init.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: OPT_VERSION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/src/lxc/cmd/lxc_init.c
      type_or_value: (OPT_USAGE - 1)
    structs:
    - fields:
      - name: '*options'
        type: struct option
      - name: '*shortopts'
        type: char
      - name: '*name'
        type: char
      - name: quiet
        type: bool
      - name: '*lxcpath'
        type: char
      - name: '*const *argv'
        type: char
      - name: argc
        type: int
      item_type: struct
      name: arguments
      pos:
        line_end: 55
        line_start: 44
        source_file: /src/lxc/src/lxc/cmd/lxc_init.c
    typedefs: []
    union: []
- function_names:
  - usage
  - opentty
  - do_child
  - add_map_entry
  - parse_map
  - read_default_map
  - find_default_map
  - is_in_ns_range
  - do_map_self
  - main
  source_file: /src/lxc/src/lxc/cmd/lxc_usernsexec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nop_process_label_get
  - nop_process_label_get_at
  - nop_process_label_set
  - nop_enabled
  - nop_keyring_label_set
  - nop_prepare
  - nop_cleanup
  - nop_process_label_fd_get
  - nop_process_label_set_at
  - lsm_nop_ops_init
  source_file: /src/lxc/src/lxc/lsm/nop.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lsm_init_static
  source_file: /src/lxc/src/lxc/lsm/lsm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_mount_features_enabled
  - apparmor_enabled
  - __apparmor_process_label_open
  - apparmor_process_label_get
  - apparmor_process_label_get_at
  - apparmor_am_unconfined
  - aa_needs_transition
  - uint64hex
  - shorten_apparmor_name
  - sanitize_path
  - apparmor_dir
  - apparmor_profile_full
  - apparmor_namespace
  - check_apparmor_parser_version
  - file_is_yes
  - apparmor_can_stack
  - must_append_sized_full
  - must_append_sized
  - is_privileged
  - append_remount_rule
  - append_all_remount_rules
  - get_apparmor_profile_content
  - make_apparmor_profile_path
  - make_apparmor_namespace
  - remove_apparmor_namespace
  - apparmor_parser_exec
  - run_apparmor_parser
  - remove_apparmor_profile
  - load_apparmor_profile
  - apparmor_cleanup
  - apparmor_prepare
  - apparmor_keyring_label_set
  - apparmor_process_label_fd_get
  - apparmor_process_label_set_at
  - apparmor_process_label_set
  - lsm_apparmor_ops_init
  source_file: /src/lxc/src/lxc/lsm/apparmor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AA_DEF_PROFILE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '"lxc-container-default"'
    - item_type: preproc_def
      name: AA_DEF_PROFILE_CGNS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '"lxc-container-default-cgns"'
    - item_type: preproc_def
      name: AA_MOUNT_RESTR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '"/sys/kernel/security/apparmor/features/mount/mask"'
    - item_type: preproc_def
      name: AA_ENABLED_FILE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '"/sys/module/apparmor/parameters/enabled"'
    - item_type: preproc_def
      name: AA_UNCHANGED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '"unchanged"'
    - item_type: preproc_def
      name: AA_GENERATED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '"generated"'
    - item_type: preproc_def
      name: AA_CMD_LOAD
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '''r'''
    - item_type: preproc_def
      name: AA_CMD_UNLOAD
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '''R'''
    - item_type: preproc_def
      name: AA_CMD_PARSE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
      type_or_value: '''Q'''
    structs:
    - fields:
      - name: '*opt'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: mntopt_t
      pos:
        line_end: 687
        line_start: 684
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
    - fields:
      - name: cmd
        type: char
      - name: '*file'
        type: char
      item_type: struct
      name: apparmor_parser_args
      pos:
        line_end: 888
        line_start: 885
        source_file: /src/lxc/src/lxc/lsm/apparmor.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/lsm/lsm.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: aa_enabled
        type: int
      - name: aa_parser_available
        type: int
      - name: aa_supports_unix
        type: int
      - name: aa_can_stack
        type: int
      - name: aa_is_stacked
        type: int
      - name: aa_admin
        type: int
      - name: aa_mount_features_enabled
        type: int
      - name: (*enabled)(struct lsm_ops *ops)
        type: int
      - name: '*(*process_label_get)(struct lsm_ops *ops, pid_t pid)'
        type: char
      - name: (*process_label_set)(struct lsm_ops *ops, const char *label, struct
          lxc_conf *conf, bool on_exec)
        type: int
      - name: (*keyring_label_set)(struct lsm_ops *ops, const char *label)
        type: int
      - name: (*prepare)(struct lsm_ops *ops, struct lxc_conf *conf, const char *lxcpath)
        type: int
      - name: (*cleanup)(struct lsm_ops *ops, struct lxc_conf *conf, const char *lxcpath)
        type: void
      - name: (*process_label_fd_get)(struct lsm_ops *ops, pid_t pid, bool on_exec)
        type: int
      - name: '*(*process_label_get_at)(struct lsm_ops *ops, int fd_pid)'
        type: char
      - name: (*process_label_set_at)(struct lsm_ops *ops, int label_fd, const char
          *label, bool on_exec)
        type: int
      item_type: struct
      name: lsm_ops
      pos:
        line_end: 36
        line_start: 15
        source_file: /src/lxc/src/lxc/lsm/lsm.h
    typedefs: []
    union: []
- function_names:
  - selinux_process_label_get
  - selinux_process_label_get_at
  - selinux_process_label_set
  - selinux_keyring_label_set
  - selinux_prepare
  - selinux_cleanup
  - selinux_process_label_fd_get
  - selinux_process_label_set_at
  - selinux_enabled
  - lsm_selinux_ops_init
  source_file: /src/lxc/src/lxc/lsm/selinux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_LABEL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/lxc/lsm/selinux.c
      type_or_value: '"unconfined_t"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bpf_lxc
  - bpf_program_free
  source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: bpf
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.h
      type_or_value: bpf_lxc
    - item_type: preproc_def
      name: __do_bpf_program_free
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.h
      type_or_value: call_cleaner(bpf_program_free)
    structs:
    - fields:
      - name: device_list_type
        type: int
      - name: kernel_fd
        type: int
      - name: prog_type
        type: __u32
      - name: n_instructions
        type: size_t
      - name: '*instructions'
        type: struct bpf_insn
      - name: fd_cgroup
        type: int
      - name: attached_type
        type: int
      - name: attached_flags
        type: __u32
      item_type: struct
      name: bpf_program
      pos:
        line_end: 49
        line_start: 38
        source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.h
    typedefs: []
    union: []
- function_names:
  - cgroup_init
  - cgroup_exit
  source_file: /src/lxc/src/lxc/cgroups/cgroup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cgroup_layout_name
  - cgroup_hierarchy_name
  - device_utility_controller
  - freezer_utility_controller
  - pure_unified_layout
  - cgroup_unified_fd
  - make_cgroup_path
  - put_cgroup_ctx
  - prepare_cgroup_ctx
  source_file: /src/lxc/src/lxc/cgroups/cgroup.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_CGROUP_MOUNTPOINT_RELATIVE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"sys/fs/cgroup"'
    - item_type: preproc_def
      name: DEFAULT_CGROUP_MOUNTPOINT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"/sys/fs/cgroup"'
    - item_type: preproc_def
      name: DEFAULT_PAYLOAD_CGROUP_PREFIX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"lxc.payload."'
    - item_type: preproc_def
      name: DEFAULT_MONITOR_CGROUP_PREFIX
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"lxc.monitor."'
    - item_type: preproc_def
      name: DEFAULT_PAYLOAD_CGROUP
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"payload"'
    - item_type: preproc_def
      name: DEFAULT_MONITOR_CGROUP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"monitor"'
    - item_type: preproc_def
      name: CGROUP_CREATE_RETRY
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"-NNNN"'
    - item_type: preproc_def
      name: CGROUP_CREATE_RETRY_LEN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: (STRLITERALLEN(CGROUP_CREATE_RETRY))
    - item_type: preproc_def
      name: CGROUP_PIVOT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '"lxc.pivot"'
    - item_type: preproc_def
      name: DEVICES_CONTROLLER
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: FREEZER_CONTROLLER
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: MAX_CGROUP_ROOT_NAMELEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CGROUP_CTX_MAX_FD
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: '20'
    - item_type: preproc_def
      name: __cleanup_cgroup_ops
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
      type_or_value: call_cleaner(cgroup_exit)
    structs:
    - fields:
      - name: layout
        type: __s32
      - name: utilities
        type: __u32
      - name: type
        type: __s32
      - name: fd
        type: __s32
      - name: controller[MAX_CGROUP_ROOT_NAMELEN]
        type: char
      item_type: struct
      name: cgroup_fd
      pos:
        line_end: 89
        line_start: 83
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
    - fields:
      - name: layout
        type: __s32
      - name: utilities
        type: __u32
      - name: fd_len
        type: __u32
      - name: fd[CGROUP_CTX_MAX_FD]
        type: __s32
      item_type: struct
      name: cgroup_ctx
      pos:
        line_end: 96
        line_start: 91
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
    - fields:
      - name: fs_type
        type: cgroupfs_type_magic_t
      - name: dfd_con
        type: int
      - name: '*path_con'
        type: char
      - name: dfd_lim
        type: int
      - name: '*path_lim'
        type: char
      - name: dfd_mon
        type: int
      - name: dfd_mnt
        type: int
      - name: '*at_mnt'
        type: char
      - name: dfd_base
        type: int
      - name: '*at_base'
        type: char
      - name: '**controllers'
        type: char
      item_type: struct
      name: hierarchy
      pos:
        line_end: 168
        line_start: 136
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
    - fields:
      - name: '*driver'
        type: char
      - name: '*version'
        type: char
      - name: dfd_mnt
        type: int
      - name: '**cgroup_use'
        type: char
      - name: '*cgroup_pattern'
        type: char
      - name: '*container_cgroup'
        type: char
      - name: '*container_limit_cgroup'
        type: char
      - name: '*monitor_cgroup'
        type: char
      - name: '**hierarchies'
        type: struct hierarchy
      - name: '*unified'
        type: struct hierarchy
      - name: '*cgroup2_devices'
        type: struct bpf_program
      - name: cgroup_layout
        type: cgroup_layout_t
      - name: (*data_init)(struct cgroup_ops *ops)
        type: int
      - name: (*payload_destroy)(struct cgroup_ops *ops, struct lxc_handler *handler)
        type: void
      - name: (*monitor_destroy)(struct cgroup_ops *ops, struct lxc_handler *handler)
        type: void
      - name: (*monitor_create)(struct cgroup_ops *ops, struct lxc_handler *handler)
        type: bool
      - name: (*monitor_enter)(struct cgroup_ops *ops, struct lxc_handler *handler)
        type: bool
      - name: (*payload_create)(struct cgroup_ops *ops, struct lxc_handler *handler)
        type: bool
      - name: (*payload_enter)(struct cgroup_ops *ops, struct lxc_handler *handler)
        type: bool
      - name: '*(*get_cgroup)(struct cgroup_ops *ops, const char *controller)'
        type: char
      - name: (*criu_escape)(const struct cgroup_ops *ops, struct lxc_conf *conf)
        type: bool
      - name: (*criu_num_hierarchies)(struct cgroup_ops *ops)
        type: int
      - name: (*criu_get_hierarchies)(struct cgroup_ops *ops, int n, char ***out)
        type: bool
      - name: "(*set)(struct cgroup_ops *ops, const char *filename,\n\t\t   const
          char *value, const char *name, const char *lxcpath)"
        type: int
      - name: "(*get)(struct cgroup_ops *ops, const char *filename, char *value,\n\t\t
          \  size_t len, const char *name, const char *lxcpath)"
        type: int
      - name: (*freeze)(struct cgroup_ops *ops, int timeout)
        type: int
      - name: (*unfreeze)(struct cgroup_ops *ops, int timeout)
        type: int
      - name: "(*setup_limits_legacy)(struct cgroup_ops *ops,\n\t\t\t\t    struct
          lxc_conf *conf, bool with_devices)"
        type: bool
      - name: (*setup_limits)(struct cgroup_ops *ops, struct lxc_handler *handler)
        type: bool
      - name: (*chown)(struct cgroup_ops *ops, struct lxc_conf *conf)
        type: bool
      - name: "(*attach)(struct cgroup_ops *ops, const struct lxc_conf *conf,\n\t\t
          \      const char *name, const char *lxcpath, pid_t pid)"
        type: bool
      - name: (*mount)(struct cgroup_ops *ops, struct lxc_handler *handler, int type)
        type: bool
      - name: "(*devices_activate)(struct cgroup_ops *ops,\n\t\t\t\t struct lxc_handler
          *handler)"
        type: bool
      - name: (*monitor_delegate_controllers)(struct cgroup_ops *ops)
        type: bool
      - name: (*payload_delegate_controllers)(struct cgroup_ops *ops)
        type: bool
      - name: (*finalize)(struct cgroup_ops *ops)
        type: void
      - name: '*(*get_limit_cgroup)(struct cgroup_ops *ops, const char *controller)'
        type: char
      item_type: struct
      name: cgroup_ops
      pos:
        line_end: 277
        line_start: 184
        source_file: /src/lxc/src/lxc/cgroups/cgroup.h
    typedefs: []
    union: []
- function_names:
  - cgns_supported
  source_file: /src/lxc/src/lxc/cgroups/cgroup_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cg_list_add
  - string_in_list
  - get_hierarchy
  - prepare_cgroup_fd
  - lxc_cpumask
  - lxc_cpumask_update
  - lxc_cpumask_to_cpulist
  - is_unified_hierarchy
  - controller_available
  - controllers_available
  - list_new
  - list_add_string
  - list_add_controllers
  - unified_controllers
  - skip_hierarchy
  - cgroup_hierarchy_add
  - cgroup_tree_remove
  - cgroup_tree_remove_wrapper
  - cgfsng_payload_destroy
  - cpuset1_cpus_initialize
  - cpuset1_initialize
  - __cgroup_tree_create
  - cgroup_tree_create
  - cgroup_tree_prune_leaf
  - cgfsng_monitor_destroy
  - check_cgroup_dir_config
  - _dbus_connection_free
  - _dbus_message_free
  - systemd_cgroup_scope_ready
  - open_dbus_container
  - close_dbus_container
  - abandon_dbus_container
  - dbus_append_array
  - sd_boilerplate
  - start_scope
  - open_systemd
  - enter_scope
  - string_pure_unified_system
  - enable_controllers_delegation
  - get_current_unified_cgroup
  - pure_unified_system
  - move_and_delegate_unified
  - unpriv_systemd_create_scope
  - unpriv_systemd_create_scope
  - cgroup_relpath
  - cgfsng_monitor_create
  - cgfsng_payload_create
  - cgfsng_monitor_enter
  - cgfsng_payload_enter
  - fchowmodat
  - chown_cgroup_wrapper
  - cgfsng_chown
  - cgfsng_finalize
  - cg_mount_needs_subdirs
  - cg_legacy_mount_controllers
  - __cgroupfs_mount
  - cgroupfs_mount
  - cgroupfs_bind_mount
  - cgfsng_mount
  - cgfsng_criu_escape
  - cgfsng_criu_num_hierarchies
  - cgfsng_criu_get_hierarchies
  - cg_legacy_freeze
  - freezer_cgroup_events_cb
  - cg_unified_freeze_do
  - cg_unified_freeze
  - cgfsng_freeze
  - cg_legacy_unfreeze
  - cg_unified_unfreeze
  - cgfsng_unfreeze
  - cgfsng_get_cgroup_do
  - cgfsng_get_cgroup
  - cgfsng_get_limit_cgroup
  - build_full_cgpath_from_monitorpath
  - cgroup_attach_leaf
  - cgroup_attach_create_leaf
  - cgroup_attach_move_into_leaf
  - cgroup_unified_attach_child_wrapper
  - cgroup_unified_attach_parent_wrapper
  - __cg_unified_attach
  - cgfsng_attach
  - cgfsng_get
  - device_cgroup_parse_access
  - device_cgroup_rule_parse
  - cgfsng_set
  - device_cgroup_rule_parse_devpath
  - convert_devpath
  - cg_legacy_set_data
  - sort_cgroup_settings
  - cgfsng_setup_limits_legacy
  - list_for_each_entry
  - bpf_device_cgroup_prepare
  - cgfsng_setup_limits
  - list_for_each_entry
  - cgfsng_devices_activate
  - __cgfsng_delegate_controllers
  - cgfsng_monitor_delegate_controllers
  - cgfsng_payload_delegate_controllers
  - unified_cgroup
  - current_unified_cgroup
  - unprefix
  - __list_cgroup_delegate
  - unified_hierarchy_delegated
  - legacy_hierarchy_delegated
  - stable_order
  - __initialize_cgroups
  - initialize_cgroups
  - cgfsng_data_init
  - cgroup_ops_init
  - __unified_attach_fd
  - __cgroup_attach_many
  - __cgroup_attach_unified
  - cgroup_attach
  - cgroup_get
  - cgroup_set
  - do_cgroup_freeze
  - __cgroup_freeze
  - cgroup_freeze
  - __cgroup_unfreeze
  - cgroup_unfreeze
  source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
  types:
    enum:
    - enumerators:
      - name: SYSTEMD_SCOPE_RET_OK
      - name: SYSTEMD_SCOPE_RET_ERROR
      - name: SYSTEMD_SCOPE_RET_IGNORE
      item_type: enum
      name: systemd_scope_ret
      pos:
        line_end: 990
        line_start: 986
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
    preproc_defs:
    - item_type: preproc_def
      name: __ISOL_CPUS
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '"/sys/devices/system/cpu/isolated"'
    - item_type: preproc_def
      name: __OFFLINE_CPUS
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '"/sys/devices/system/cpu/offline"'
    - item_type: preproc_def
      name: SYSTEMD_SCOPE_FAILED
      pos:
        line_end: 961
        line_start: 960
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SYSTEMD_SCOPE_UNSUPP
      pos:
        line_end: 962
        line_start: 961
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SYSTEMD_SCOPE_SUCCESS
      pos:
        line_end: 963
        line_start: 962
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DESTINATION
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '"org.freedesktop.systemd1"'
    - item_type: preproc_def
      name: PATH
      pos:
        line_end: 967
        line_start: 966
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '"/org/freedesktop/systemd1"'
    - item_type: preproc_def
      name: INTERFACE
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: '"org.freedesktop.systemd1.Manager"'
    - item_type: preproc_def
      name: JOBREMOVED_RULE
      pos:
        line_end: 1511
        line_start: 1508
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: "\"type='signal',sender='\" DESTINATION \"',path='\" PATH \\\n\t\"',interface='\"
        INTERFACE \"',member='JobRemoved'\""
    - item_type: preproc_def
      name: CGFSNG_LAYOUT_LEGACY
      pos:
        line_end: 3846
        line_start: 3845
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: BIT(0)
    - item_type: preproc_def
      name: CGFSNG_LAYOUT_UNIFIED
      pos:
        line_end: 3847
        line_start: 3846
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
      type_or_value: BIT(1)
    structs:
    - fields:
      - name: '**hierarchies'
        type: struct hierarchy
      - name: '*path_prune'
        type: char
      - name: '*conf'
        type: struct lxc_conf
      - name: origuid
        type: uid_t
      - name: '*path'
        type: char
      item_type: struct
      name: generic_userns_exec_data
      pos:
        line_end: 504
        line_start: 498
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
    - fields:
      - name: iter
        type: DBusMessageIter
      - name: '*parent'
        type: DBusMessageIter
      - name: set
        type: bool
      item_type: struct
      name: dbus_iter
      pos:
        line_end: 1041
        line_start: 1037
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
    - fields:
      - name: '*conf'
        type: struct lxc_conf
      - name: '*lxcpath'
        type: char
      - name: unified_fd
        type: int
      - name: sk_pair[2]
        type: int
      - name: pid
        type: pid_t
      - name: unprivileged
        type: bool
      item_type: struct
      name: userns_exec_unified_attach_data
      pos:
        line_end: 2926
        line_start: 2919
        source_file: /src/lxc/src/lxc/cgroups/cgfsng.c
    typedefs: []
    union: []
- function_names:
  - unified_cgroup_fd
  - cgroup_tree_prune
  - prune_init_scope
  source_file: /src/lxc/src/lxc/cgroups/cgroup_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INIT_SCOPE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/lxc/src/lxc/cgroups/cgroup_utils.c
      type_or_value: '"/init.scope"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bpf_program_add_instructions
  - BPF_LDX_MEM
  - BPF_ALU32_IMM
  - BPF_MOV64_IMM
  - BPF_MOV32_REG
  - BPF_JMP_REG
  - BPF_JMP_IMM
  - BPF_EXIT_INSN
  - bpf_access_mask
  - bpf_device_type
  - bpf_device_all_access
  - bpf_program_new
  - bpf_program_init
  - bpf_program_append_device
  - bpf_program_finalize
  - bpf_program_load_kernel
  - bpf_program_cgroup_attach
  - bpf_program_cgroup_detach
  - bpf_device_program_free
  - bpf_device_list_block_all
  - bpf_device_add
  - bpf_list_add_device
  - bpf_devices_cgroup_supported
  - __bpf_cgroup_devices
  - bpf_cgroup_devices_attach
  - bpf_cgroup_devices_update
  source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BPF_LOG_BUF_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
      type_or_value: '(1 << 23) '
    - item_type: preproc_def
      name: BPF_LOG_LEVEL1
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BPF_LOG_LEVEL2
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BPF_LOG_LEVEL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/lxc/cgroups/cgroup2_devices.c
      type_or_value: (BPF_LOG_LEVEL1 | BPF_LOG_LEVEL2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - pam_cgfs_debug_stream
  - pam_cgfs_error
  - pam_cgfs_debug
  - pam_cgfs_debug
  - do_mkdir
  - lxc_mkdir_parent
  - mysyslog
  - batch_realloc
  - append_line
  - read_file
  - append_null_to_list
  - must_append_string
  - trim
  - copy_to_eol
  - is_lxcfs
  - is_cgv1
  - is_cgv2
  - string_in_list
  - make_string_list
  - string_list_length
  - write_int
  - recursive_rmdir
  - must_add_to_list
  - get_mountpoint
  - cgv1_get_controllers
  - cgv2_get_current_cgroup
  - cgv1_controller_lists_intersect
  - cgv1_controller_list_is_dup
  - cgv1_mark_to_make_rw
  - cgv2_mark_to_make_rw
  - cg_mark_to_make_rw
  - cgv1_must_prefix_named
  - must_append_controller
  - cgv1_get_proc_mountinfo_controllers
  - cgv1_controller_in_clist
  - cgv1_get_current_cgroup
  - cg_systemd_prune_init_scope
  - cgv1_add_controller
  - cgv2_add_controller
  - cg_systemd_under_user_slice_1
  - cg_systemd_under_user_slice_2
  - cg_systemd_created_user_slice
  - cg_systemd_chown_existing_cgroup
  - cgv1_init
  - cg_get_version_of_mntpt
  - cgv2_init
  - cg_init
  - cgv1_enter
  - cgv2_enter
  - cg_enter
  - cgv1_escape
  - cgv2_escape
  - cg_escape
  - get_uid_gid
  - cg_belongs_to_uid_gid
  - cg_cpumask
  - string_join
  - cg_cpumask_to_cpulist
  - cg_get_max_cpus
  - cg_filter_and_set_cpus
  - cg_copy_parent_file
  - cgv1_handle_root_cpuset_hierarchy
  - cgv1_handle_cpuset_hierarchy
  - cgv1_create_one
  - cgv1_remove_one
  - cgv2_remove
  - cgv1_create
  - cgv2_create
  - handle_login
  - cgv1_prune_empty_cgroups
  - cgv2_prune_empty_cgroups
  - cg_prune_empty_cgroups
  - cgv1_free_hierarchies
  - cgv2_free_hierarchies
  - cg_exit
  - pam_sm_open_session
  - pam_sm_close_session
  source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
  types:
    enum:
    - enumerators:
      - name: CGROUP_UNKNOWN
        value: '-1'
      - name: CGROUP_PURE_V2
        value: '2'
      - name: CGROUP_PURE_V1
        value: '1'
      - name: CGROUP_UNINITIALIZED
        value: '3'
      - name: CGROUP_MIXED
        value: '0'
      item_type: enum
      name: cg_mount_mode
      pos:
        line_end: 63
        line_start: 57
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
    preproc_defs:
    - item_type: preproc_def
      name: BATCH_SIZE
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
      type_or_value: '50'
    - item_type: preproc_def
      name: __PIDLEN
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
      type_or_value: '5 + '
    - item_type: preproc_def
      name: INIT_SCOPE
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
      type_or_value: '"/init.scope"'
    - item_type: preproc_def
      name: __IN_TO_STR_LEN
      pos:
        line_end: 1612
        line_start: 1611
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
      type_or_value: '21'
    - item_type: preproc_def
      name: __ISOL_CPUS
      pos:
        line_end: 1669
        line_start: 1668
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
      type_or_value: '"/sys/devices/system/cpu/isolated"'
    - item_type: preproc_def
      name: __PAM_CGFS_USER
      pos:
        line_end: 1984
        line_start: 1983
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
      type_or_value: '"/user/"'
    - item_type: preproc_def
      name: __PAM_CGFS_USER_LEN
      pos:
        line_end: 1985
        line_start: 1984
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
      type_or_value: '6'
    structs:
    - fields:
      - name: '**controllers'
        type: char
      - name: '*mountpoint'
        type: char
      - name: '*base_cgroup'
        type: char
      - name: '*fullcgpath'
        type: char
      - name: '*init_cgroup'
        type: char
      - name: create_rw_cgroup
        type: bool
      - name: systemd_user_slice
        type: bool
      item_type: struct
      name: cgv1_hierarchy
      pos:
        line_end: 123
        line_start: 115
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
    - fields:
      - name: '**controllers'
        type: char
      - name: '*mountpoint'
        type: char
      - name: '*base_cgroup'
        type: char
      - name: '*fullcgpath'
        type: char
      - name: '*init_cgroup'
        type: char
      - name: create_rw_cgroup
        type: bool
      - name: systemd_user_slice
        type: bool
      item_type: struct
      name: cgv2_hierarchy
      pos:
        line_end: 162
        line_start: 154
        source_file: /src/lxc/src/lxc/pam/pam_cgfs.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/storage_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LXC_OVERLAY_PRIVATE_DIR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/lxc/src/lxc/storage/storage_utils.h
      type_or_value: '"overlay"'
    - item_type: preproc_def
      name: LXC_OVERLAY_DELTA_DIR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/lxc/storage/storage_utils.h
      type_or_value: '"delta"'
    - item_type: preproc_def
      name: LXC_OVERLAY_WORK_DIR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/lxc/storage/storage_utils.h
      type_or_value: '"work"'
    - item_type: preproc_def
      name: LXC_OVERLAY_DELTA_PATH
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/lxc/storage/storage_utils.h
      type_or_value: LXC_OVERLAY_PRIVATE_DIR "/" LXC_OVERLAY_DELTA_DIR
    - item_type: preproc_def
      name: LXC_OVERLAY_WORK_PATH
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/lxc/storage/storage_utils.h
      type_or_value: LXC_OVERLAY_PRIVATE_DIR "/" LXC_OVERLAY_WORK_DIR
    - item_type: preproc_def
      name: LXC_OVERLAY_PATH_LEN
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/lxc/src/lxc/storage/storage_utils.h
      type_or_value: (STRLITERALLEN(LXC_OVERLAY_PRIVATE_DIR) + STRLITERALLEN("/")
        + 256 + 1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/overlay.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dir_clonepaths
  - dir_create
  - dir_destroy
  - dir_detect
  - dir_mount
  - dir_umount
  source_file: /src/lxc/src/lxc/storage/dir.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - attach_nbd
  - detach_nbd_idx
  - nbd_clonepaths
  - nbd_create
  - nbd_destroy
  - nbd_detect
  - nbd_mount
  - nbd_umount
  - requires_nbd
  - do_attach_nbd
  - clone_attach_nbd
  - nbd_busy
  - nbd_detach
  - nbd_get_partition
  - wait_for_partition
  source_file: /src/lxc/src/lxc/storage/nbd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*nbd'
        type: char
      - name: '*path'
        type: char
      item_type: struct
      name: nbd_attach_data
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/lxc/src/lxc/storage/nbd.c
    typedefs: []
    union: []
- function_names:
  - cpu_to_le64
  - le64_to_cpu
  - cpu_to_le32
  - le32_to_cpu
  - cpu_to_le16
  - le16_to_cpu
  - cpu_to_le64
  - le64_to_cpu
  - cpu_to_le32
  - le32_to_cpu
  - cpu_to_le16
  - le16_to_cpu
  - BTRFS_SETGET_STACK_FUNCS
  source_file: /src/lxc/src/lxc/storage/btrfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BTRFS_SUPER_MAGIC
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '0x9123683E'
    - item_type: preproc_def
      name: BTRFS_IOCTL_MAGIC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '0x94'
    - item_type: preproc_def
      name: BTRFS_IOC_SUBVOL_GETFLAGS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOR(BTRFS_IOCTL_MAGIC, 25, unsigned long long)
    - item_type: preproc_def
      name: BTRFS_IOC_SPACE_INFO
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOWR(BTRFS_IOCTL_MAGIC, 20, struct btrfs_ioctl_space_args)
    - item_type: preproc_def
      name: BTRFS_FSID_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BTRFS_IOC_FS_INFO
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOR(BTRFS_IOCTL_MAGIC, 31, struct btrfs_ioctl_fs_info_args)
    - item_type: preproc_def
      name: BTRFS_SUBVOL_NAME_MAX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '4039'
    - item_type: preproc_def
      name: BTRFS_PATH_NAME_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '4087'
    - item_type: preproc_def
      name: BTRFS_IOCTL_MAGIC
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '0x94'
    - item_type: preproc_def
      name: BTRFS_IOC_SUBVOL_CREATE_V2
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOW(BTRFS_IOCTL_MAGIC, 24, struct btrfs_ioctl_vol_args_v2)
    - item_type: preproc_def
      name: BTRFS_IOC_SNAP_CREATE_V2
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOW(BTRFS_IOCTL_MAGIC, 23, struct btrfs_ioctl_vol_args_v2)
    - item_type: preproc_def
      name: BTRFS_IOC_SUBVOL_CREATE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOW(BTRFS_IOCTL_MAGIC, 14, struct btrfs_ioctl_vol_args)
    - item_type: preproc_def
      name: BTRFS_IOC_SNAP_DESTROY
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOW(BTRFS_IOCTL_MAGIC, 15, struct btrfs_ioctl_vol_args)
    - item_type: preproc_def
      name: BTRFS_QGROUP_INHERIT_SET_LIMITS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: (1ULL << 0)
    - item_type: preproc_def
      name: BTRFS_ROOT_BACKREF_KEY
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '144'
    - item_type: preproc_def
      name: BTRFS_ROOT_ITEM_KEY
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '132'
    - item_type: preproc_def
      name: BTRFS_ROOT_REF_KEY
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '156'
    - item_type: preproc_def
      name: BTRFS_ROOT_TREE_DIR_OBJECTID
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: 6ULL
    - item_type: preproc_def
      name: BTRFS_DIR_ITEM_KEY
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '84'
    - item_type: preproc_def
      name: BTRFS_IOCTL_MAGIC
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '0x94'
    - item_type: preproc_def
      name: BTRFS_VOL_NAME_MAX
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '255'
    - item_type: preproc_def
      name: BTRFS_PATH_NAME_MAX
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '4087'
    - item_type: preproc_def
      name: BTRFS_SEARCH_ARGS_BUFSIZE
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: (4096 - sizeof(struct btrfs_ioctl_search_key))
    - item_type: preproc_def
      name: BTRFS_IOC_TREE_SEARCH
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOWR(BTRFS_IOCTL_MAGIC, 17, struct btrfs_ioctl_search_args)
    - item_type: preproc_def
      name: BTRFS_UUID_SIZE
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BTRFS_IOC_INO_LOOKUP
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: _IOWR(BTRFS_IOCTL_MAGIC, 18, struct btrfs_ioctl_ino_lookup_args)
    - item_type: preproc_def
      name: BTRFS_INO_LOOKUP_PATH_MAX
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: '4080'
    - item_type: preproc_def
      name: BTRFS_FIRST_FREE_OBJECTID
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: 256ULL
    - item_type: preproc_def
      name: BTRFS_LAST_FREE_OBJECTID
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: -256ULL
    - item_type: preproc_def
      name: BTRFS_FIRST_CHUNK_TREE_OBJECTID
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: 256ULL
    - item_type: preproc_def
      name: __force
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type_or_value: __attribute__((force))
    structs:
    - fields:
      - name: flags
        type: unsigned long long
      - name: total_bytes
        type: unsigned long long
      - name: used_bytes
        type: unsigned long long
      item_type: struct
      name: btrfs_ioctl_space_info
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: space_slots
        type: unsigned long long
      - name: total_spaces
        type: unsigned long long
      - name: spaces[]
        type: struct btrfs_ioctl_space_info
      item_type: struct
      name: btrfs_ioctl_space_args
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: max_id
        type: unsigned long long
      - name: num_devices
        type: unsigned long long
      - name: fsid[BTRFS_FSID_SIZE]
        type: char
      - name: reserved[124]
        type: unsigned long long
      item_type: struct
      name: btrfs_ioctl_fs_info_args
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: fd
        type: signed long long
      - name: name[BTRFS_PATH_NAME_MAX + 1]
        type: char
      item_type: struct
      name: btrfs_ioctl_vol_args
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: fd
        type: signed long long
      - name: transid
        type: unsigned long long
      - name: flags
        type: unsigned long long
      - name: name[BTRFS_SUBVOL_NAME_MAX + 1]
        type: char
      item_type: struct
      name: btrfs_ioctl_vol_args_v2
      pos:
        line_end: 78
        line_start: 65
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: dirid
        type: __le64
      - name: sequence
        type: __le64
      - name: name_len
        type: __le16
      item_type: struct
      name: btrfs_root_ref
      pos:
        line_end: 109
        line_start: 105
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: objectid
        type: __le64
      - name: type
        type: u8
      - name: offset
        type: __le64
      item_type: struct
      name: btrfs_disk_key
      pos:
        line_end: 115
        line_start: 111
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: location
        type: struct btrfs_disk_key
      - name: transid
        type: __le64
      - name: data_len
        type: __le16
      - name: name_len
        type: __le16
      - name: type
        type: u8
      item_type: struct
      name: btrfs_dir_item
      pos:
        line_end: 123
        line_start: 117
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: tree_id
        type: __u64
      - name: min_objectid
        type: __u64
      - name: max_objectid
        type: __u64
      - name: min_offset
        type: __u64
      - name: max_offset
        type: __u64
      - name: min_transid
        type: __u64
      - name: max_transid
        type: __u64
      - name: min_type
        type: __u32
      - name: max_type
        type: __u32
      - name: nr_items
        type: __u32
      - name: unused
        type: __u32
      - name: unused1
        type: __u64
      - name: unused2
        type: __u64
      - name: unused3
        type: __u64
      - name: unused4
        type: __u64
      item_type: struct
      name: btrfs_ioctl_search_key
      pos:
        line_end: 163
        line_start: 129
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: transid
        type: __u64
      - name: objectid
        type: __u64
      - name: offset
        type: __u64
      - name: type
        type: __u32
      - name: len
        type: __u32
      item_type: struct
      name: btrfs_ioctl_search_header
      pos:
        line_end: 171
        line_start: 165
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: key
        type: struct btrfs_ioctl_search_key
      - name: buf[BTRFS_SEARCH_ARGS_BUFSIZE]
        type: char
      item_type: struct
      name: btrfs_ioctl_search_args
      pos:
        line_end: 182
        line_start: 179
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: sec
        type: __le64
      - name: nsec
        type: __le32
      item_type: struct
      name: btrfs_timespec
      pos:
        line_end: 190
        line_start: 187
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: generation
        type: __le64
      - name: transid
        type: __le64
      - name: size
        type: __le64
      - name: nbytes
        type: __le64
      - name: block_group
        type: __le64
      - name: nlink
        type: __le32
      - name: uid
        type: __le32
      - name: gid
        type: __le32
      - name: mode
        type: __le32
      - name: rdev
        type: __le64
      - name: flags
        type: __le64
      - name: sequence
        type: __le64
      - name: reserved[4]
        type: __le64
      - name: atime
        type: struct btrfs_timespec
      - name: ctime
        type: struct btrfs_timespec
      - name: mtime
        type: struct btrfs_timespec
      - name: otime
        type: struct btrfs_timespec
      item_type: struct
      name: btrfs_inode_item
      pos:
        line_end: 219
        line_start: 192
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: inode
        type: struct btrfs_inode_item
      - name: generation
        type: __le64
      - name: root_dirid
        type: __le64
      - name: bytenr
        type: __le64
      - name: byte_limit
        type: __le64
      - name: bytes_used
        type: __le64
      - name: last_snapshot
        type: __le64
      - name: flags
        type: __le64
      - name: refs
        type: __le32
      - name: drop_progress
        type: struct btrfs_disk_key
      - name: drop_level
        type: u8
      - name: level
        type: u8
      item_type: struct
      name: btrfs_root_item_v0
      pos:
        line_end: 234
        line_start: 221
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: inode
        type: struct btrfs_inode_item
      - name: generation
        type: __le64
      - name: root_dirid
        type: __le64
      - name: bytenr
        type: __le64
      - name: byte_limit
        type: __le64
      - name: bytes_used
        type: __le64
      - name: last_snapshot
        type: __le64
      - name: flags
        type: __le64
      - name: refs
        type: __le32
      - name: drop_progress
        type: struct btrfs_disk_key
      - name: drop_level
        type: u8
      - name: level
        type: u8
      - name: generation_v2
        type: __le64
      - name: uuid[BTRFS_UUID_SIZE]
        type: u8
      - name: parent_uuid[BTRFS_UUID_SIZE]
        type: u8
      - name: received_uuid[BTRFS_UUID_SIZE]
        type: u8
      - name: ctransid
        type: __le64
      - name: otransid
        type: __le64
      - name: stransid
        type: __le64
      - name: rtransid
        type: __le64
      - name: ctime
        type: struct btrfs_timespec
      - name: otime
        type: struct btrfs_timespec
      - name: stime
        type: struct btrfs_timespec
      - name: rtime
        type: struct btrfs_timespec
      - name: reserved[8]
        type: __le64
      item_type: struct
      name: btrfs_root_item
      pos:
        line_end: 279
        line_start: 236
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: treeid
        type: __u64
      - name: objectid
        type: __u64
      - name: name[BTRFS_INO_LOOKUP_PATH_MAX]
        type: char
      item_type: struct
      name: btrfs_ioctl_ino_lookup_args
      pos:
        line_end: 288
        line_start: 284
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: objid
        type: u64
      - name: parentid
        type: u64
      - name: '*name'
        type: char
      - name: '*dirname'
        type: char
      item_type: struct
      name: mytree_node
      pos:
        line_end: 352
        line_start: 347
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    - fields:
      - name: '*nodes'
        type: struct mytree_node
      - name: num
        type: int
      item_type: struct
      name: my_btrfs_tree
      pos:
        line_end: 357
        line_start: 354
        source_file: /src/lxc/src/lxc/storage/btrfs.h
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type: uint8_t
    - item_type: typedef
      name: u16
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type: uint16_t
    - item_type: typedef
      name: u32
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type: uint32_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/lxc/src/lxc/storage/btrfs.h
      type: uint64_t
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/rbd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ovl_clonepaths
  - ovl_create
  - ovl_destroy
  - ovl_detect
  - ovl_mount
  - ovl_umount
  - ovl_get_lower
  - ovl_get_rootfs
  - ovl_mkdir
  - ovl_update_abs_paths
  - ovl_remount_on_enodev
  - ovl_detect_name
  - ovl_do_rsync
  source_file: /src/lxc/src/lxc/storage/overlay.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - zfs_detect_exec_wrapper
  - zfs_create_exec_wrapper
  - zfs_delete_exec_wrapper
  - zfs_snapshot_exec_wrapper
  - zfs_clone_exec_wrapper
  - zfs_get_parent_snapshot_exec_wrapper
  - zfs_list_entry
  - zfs_detect
  - zfs_mount
  - zfs_umount
  - zfs_copy
  - zfs_snapshot
  - zfs_clonepaths
  - zfs_destroy
  - zfs_create
  source_file: /src/lxc/src/lxc/storage/zfs.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dataset'
        type: char
      - name: '*snapshot'
        type: char
      - name: '*options'
        type: char
      - name: '*argv'
        type: void
      item_type: struct
      name: zfs_args
      pos:
        line_end: 26
        line_start: 21
        source_file: /src/lxc/src/lxc/storage/zfs.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/zfs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_storage_by_name
  - storage_query
  - storage_get
  - do_storage_create
  - storage_can_backup
  - storage_copy
  - storage_create
  - storage_destroy
  - storage_init
  - storage_lxc_is_dir
  - storage_put
  - rootfs_is_blockdev
  - lxc_storage_get_path
  source_file: /src/lxc/src/lxc/storage/storage.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLKGETSIZE64
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/lxc/src/lxc/storage/storage.c
      type_or_value: _IOR(0x12, 114, size_t)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*ops'
        type: struct lxc_storage_ops
      item_type: struct
      name: lxc_storage_type
      pos:
        line_end: 167
        line_start: 164
        source_file: /src/lxc/src/lxc/storage/storage.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/rsync.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*orig'
        type: struct lxc_storage
      - name: '*new'
        type: struct lxc_storage
      item_type: struct
      name: rsync_data
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/lxc/src/lxc/storage/rsync.h
    - fields:
      - name: '*src'
        type: char
      - name: '*dest'
        type: char
      item_type: struct
      name: rsync_data_char
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/lxc/src/lxc/storage/rsync.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/lvm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/dir.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/nbd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lxc_storage_rsync_exec_wrapper
  - lxc_rsync_exec_wrapper
  - lxc_rsync_exec
  - lxc_rsync
  source_file: /src/lxc/src/lxc/storage/rsync.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - loop_clonepaths
  - loop_create
  - loop_destroy
  - loop_detect
  - loop_mount
  - loop_umount
  - do_loop_create
  source_file: /src/lxc/src/lxc/storage/loop.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rbd_create_wrapper
  - rbd_map_wrapper
  - rbd_unmap_wrapper
  - rbd_delete_wrapper
  - rbd_clonepaths
  - rbd_create
  - rbd_destroy
  - rbd_detect
  - rbd_mount
  - rbd_umount
  source_file: /src/lxc/src/lxc/storage/rbd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*osd_pool_name'
        type: char
      - name: '*rbd_user'
        type: char
      - name: '*rbd_name'
        type: char
      - name: '*size'
        type: char
      item_type: struct
      name: rbd_args
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/lxc/src/lxc/storage/rbd.c
    typedefs: []
    union: []
- function_names:
  - attach_block_device
  - blk_getsize
  - detach_block_device
  - detect_fs
  - do_mkfs_exec_wrapper
  - is_blktype
  - mount_unknown_fs
  - find_fstype_cb
  - linkderef
  - unpriv_snap_allowed
  - lxc_is_valid_storage_type
  - storage_destroy_wrapper
  source_file: /src/lxc/src/lxc/storage/storage_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLKGETSIZE64
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/lxc/storage/storage_utils.c
      type_or_value: _IOR(0x12, 114, size_t)
    structs:
    - fields:
      - name: '*rootfs'
        type: char
      - name: '*target'
        type: char
      - name: '*options'
        type: char
      item_type: struct
      name: cbarg
      pos:
        line_end: 268
        line_start: 264
        source_file: /src/lxc/src/lxc/storage/storage_utils.c
    - fields:
      - name: '*rootfs'
        type: char
      - name: '*target'
        type: char
      - name: '*options'
        type: char
      item_type: struct
      name: cbarg
      pos:
        line_end: 314
        line_start: 310
        source_file: /src/lxc/src/lxc/storage/storage_utils.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/loop.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_btrfs_subvol_path
  - btrfs_list_get_path_rootid
  - is_btrfs_fs
  - is_btrfs_subvol
  - btrfs_detect
  - btrfs_mount
  - btrfs_umount
  - btrfs_subvolume_create
  - btrfs_same_fs
  - btrfs_snapshot
  - btrfs_snapshot_wrapper
  - btrfs_clonepaths
  - btrfs_create_clone
  - btrfs_create_snapshot
  - btrfs_do_destroy_subvol
  - get_btrfs_tree_idx
  - create_my_btrfs_tree
  - update_tree_node
  - add_btrfs_tree_node
  - free_btrfs_tree
  - do_remove_btrfs_children
  - btrfs_lxc_rm_rf
  - btrfs_try_remove_subvol
  - btrfs_destroy
  - btrfs_create
  source_file: /src/lxc/src/lxc/storage/btrfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - lvm_destroy_exec_wrapper
  - lvm_create_exec_wrapper
  - lvm_snapshot_exec_wrapper
  - do_lvm_create
  - lvm_detect
  - lvm_mount
  - lvm_umount
  - lvm_compare_lv_attr
  - lvm_is_thin_volume
  - lvm_is_thin_pool
  - fs_needs_new_uuid
  - lvm_snapshot_create_new_uuid_wrapper
  - lvm_snapshot
  - lvm_clonepaths
  - lvm_create_clone
  - lvm_create_snapshot
  - lvm_destroy
  - lvm_create
  source_file: /src/lxc/src/lxc/storage/lvm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __LVSCMD
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/lxc/src/lxc/storage/lvm.c
      type_or_value: '"lvs --unbuffered --noheadings -o lv_attr %s 2>/dev/null"'
    structs:
    - fields:
      - name: '*size'
        type: char
      - name: '*vg'
        type: char
      - name: '*lv'
        type: char
      - name: '*thinpool'
        type: char
      - name: '*fstype'
        type: char
      - name: sigwipe
        type: bool
      - name: '*source_lv'
        type: char
      item_type: struct
      name: lvcreate_args
      pos:
        line_end: 37
        line_start: 27
        source_file: /src/lxc/src/lxc/storage/lvm.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/lxc/storage/storage.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MS_DIRSYNC
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MS_REC
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: MNT_DETACH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MS_SLAVE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: (1 << 19)
    - item_type: preproc_def
      name: MS_RELATIME
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: (1 << 21)
    - item_type: preproc_def
      name: MS_STRICTATIME
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: DEFAULT_FS_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: '1073741824'
    - item_type: preproc_def
      name: DEFAULT_FSTYPE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: '"ext4"'
    - item_type: preproc_def
      name: LXC_STORAGE_INTERNAL_OVERLAY_RESTORE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/lxc/src/lxc/storage/storage.h
      type_or_value: (1 << 6)
    structs:
    - fields:
      - name: (*detect)(const char *path)
        type: bool
      - name: (*mount)(struct lxc_storage *bdev)
        type: int
      - name: (*umount)(struct lxc_storage *bdev)
        type: int
      - name: (*destroy)(struct lxc_storage *bdev)
        type: int
      - name: "(*create)(struct lxc_storage *bdev, const char *dest, const char *n,\n\t\t
          \     struct bdev_specs *specs, const struct lxc_conf *conf)"
        type: int
      - name: "(*clone_paths)(struct lxc_storage *orig, struct lxc_storage *new,\n\t\t\t
          \  const char *oldname, const char *cname,\n\t\t\t   const char *oldpath,
          const char *lxcpath, int snap,\n\t\t\t   uint64_t newsize, struct lxc_conf
          *conf)"
        type: int
      - name: "(*copy)(struct lxc_conf *conf, struct lxc_storage *orig,\n\t\t     struct
          lxc_storage *new, uint64_t newsize)"
        type: bool
      - name: "(*snapshot)(struct lxc_conf *conf, struct lxc_storage *orig,\n\t\t\t
          struct lxc_storage *new, uint64_t newsize)"
        type: bool
      - name: can_snapshot
        type: bool
      - name: can_backup
        type: bool
      item_type: struct
      name: lxc_storage_ops
      pos:
        line_end: 68
        line_start: 47
        source_file: /src/lxc/src/lxc/storage/storage.h
    - fields:
      - name: '*ops'
        type: struct lxc_storage_ops
      - name: '*type'
        type: char
      - name: '*src'
        type: char
      - name: '*dest'
        type: char
      - name: '*mntopts'
        type: char
      - name: lofd
        type: int
      - name: nbd_idx
        type: int
      - name: flags
        type: int
      - name: '*rootfs'
        type: struct lxc_rootfs
      item_type: struct
      name: lxc_storage
      pos:
        line_end: 88
        line_start: 75
        source_file: /src/lxc/src/lxc/storage/storage.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/include/strlcpy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strlcpy
  source_file: /src/lxc/src/include/strlcpy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/include/getgrgid_r.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BPF_CLASS
  - BPF_SIZE
  - BPF_MODE
  - BPF_OP
  - BPF_SRC
  source_file: /src/lxc/src/include/bpf_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BPF_LD
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BPF_LDX
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: BPF_ST
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: BPF_STX
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: BPF_ALU
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: BPF_JMP
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: BPF_RET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: BPF_MISC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: BPF_W
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: BPF_H
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x08 '
    - item_type: preproc_def
      name: BPF_B
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: BPF_IMM
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BPF_ABS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: BPF_IND
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: BPF_MEM
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x60'
    - item_type: preproc_def
      name: BPF_LEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: BPF_MSH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0xa0'
    - item_type: preproc_def
      name: BPF_ADD
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BPF_SUB
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: BPF_MUL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: BPF_DIV
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: BPF_OR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: BPF_AND
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x50'
    - item_type: preproc_def
      name: BPF_LSH
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x60'
    - item_type: preproc_def
      name: BPF_RSH
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x70'
    - item_type: preproc_def
      name: BPF_NEG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: BPF_MOD
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x90'
    - item_type: preproc_def
      name: BPF_XOR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0xa0'
    - item_type: preproc_def
      name: BPF_JA
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BPF_JEQ
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: BPF_JGT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: BPF_JGE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: BPF_JSET
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: BPF_K
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BPF_X
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: BPF_MAXINSNS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/lxc/src/include/bpf_common.h
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fexecve
  source_file: /src/lxc/src/include/fexecve.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/lxc/src/include/fexecve.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __BPF_FUNC_MAPPER
  - __BPF_ENUM_FN
  - BPF_F_ADJ_ROOM_ENCAP_L2
  - __bpf_md_ptr
  - BPF_LINE_INFO_LINE_NUM
  - BPF_LINE_INFO_LINE_COL
  source_file: /src/lxc/src/include/bpf.h
  types:
    enum:
    - enumerators:
      - name: BPF_MAP_LOOKUP_ELEM
      - name: BPF_PROG_LOAD
      - name: BPF_PROG_DETACH
      - name: BPF_PROG_GET_FD_BY_ID
      - name: BPF_RAW_TRACEPOINT_OPEN
      - name: BPF_MAP_LOOKUP_AND_DELETE_ELEM
      - name: BPF_MAP_LOOKUP_AND_DELETE_BATCH
      - name: BPF_LINK_UPDATE
      - name: BPF_LINK_GET_NEXT_ID
      - name: BPF_PROG_BIND_MAP
      - name: BPF_MAP_UPDATE_ELEM
      - name: BPF_OBJ_PIN
      - name: BPF_BTF_LOAD
      - name: BPF_PROG_TEST_RUN
      - name: BPF_MAP_GET_FD_BY_ID
      - name: BPF_MAP_FREEZE
      - name: BPF_MAP_UPDATE_BATCH
      - name: BPF_ENABLE_STATS
      - name: BPF_MAP_CREATE
      - name: BPF_MAP_DELETE_ELEM
      - name: BPF_OBJ_GET
      - name: BPF_PROG_GET_NEXT_ID
      - name: BPF_OBJ_GET_INFO_BY_FD
      - name: BPF_BTF_GET_FD_BY_ID
      - name: BPF_BTF_GET_NEXT_ID
      - name: BPF_MAP_DELETE_BATCH
      - name: BPF_ITER_CREATE
      - name: BPF_MAP_GET_NEXT_KEY
      - name: BPF_PROG_ATTACH
      - name: BPF_MAP_GET_NEXT_ID
      - name: BPF_PROG_QUERY
      - name: BPF_TASK_FD_QUERY
      - name: BPF_MAP_LOOKUP_BATCH
      - name: BPF_LINK_CREATE
      - name: BPF_LINK_GET_FD_BY_ID
      - name: BPF_LINK_DETACH
      item_type: enum
      name: bpf_cmd
      pos:
        line_end: 121
        line_start: 84
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_MAP_TYPE_HASH
      - name: BPF_MAP_TYPE_PERCPU_HASH
      - name: BPF_MAP_TYPE_LRU_HASH
      - name: BPF_MAP_TYPE_XSKMAP
      - name: BPF_MAP_TYPE_HASH_OF_MAPS
      - name: BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE
      - name: BPF_MAP_TYPE_DEVMAP_HASH
      - name: BPF_MAP_TYPE_TASK_STORAGE
      - name: BPF_MAP_TYPE_ARRAY
      - name: BPF_MAP_TYPE_PERCPU_ARRAY
      - name: BPF_MAP_TYPE_LRU_PERCPU_HASH
      - name: BPF_MAP_TYPE_DEVMAP
      - name: BPF_MAP_TYPE_SOCKHASH
      - name: BPF_MAP_TYPE_QUEUE
      - name: BPF_MAP_TYPE_STRUCT_OPS
      - name: BPF_MAP_TYPE_UNSPEC
      - name: BPF_MAP_TYPE_PROG_ARRAY
      - name: BPF_MAP_TYPE_STACK_TRACE
      - name: BPF_MAP_TYPE_LPM_TRIE
      - name: BPF_MAP_TYPE_SOCKMAP
      - name: BPF_MAP_TYPE_CGROUP_STORAGE
      - name: BPF_MAP_TYPE_STACK
      - name: BPF_MAP_TYPE_RINGBUF
      - name: BPF_MAP_TYPE_PERF_EVENT_ARRAY
      - name: BPF_MAP_TYPE_CGROUP_ARRAY
      - name: BPF_MAP_TYPE_CPUMAP
      - name: BPF_MAP_TYPE_ARRAY_OF_MAPS
      - name: BPF_MAP_TYPE_REUSEPORT_SOCKARRAY
      - name: BPF_MAP_TYPE_SK_STORAGE
      - name: BPF_MAP_TYPE_INODE_STORAGE
      item_type: enum
      name: bpf_map_type
      pos:
        line_end: 154
        line_start: 123
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_PROG_TYPE_KPROBE
      - name: BPF_PROG_TYPE_XDP
      - name: BPF_PROG_TYPE_CGROUP_SOCK_ADDR
      - name: BPF_PROG_TYPE_LWT_IN
      - name: BPF_PROG_TYPE_SK_SKB
      - name: BPF_PROG_TYPE_LIRC_MODE2
      - name: BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE
      - name: BPF_PROG_TYPE_EXT
      - name: BPF_PROG_TYPE_UNSPEC
      - name: BPF_PROG_TYPE_SCHED_CLS
      - name: BPF_PROG_TYPE_PERF_EVENT
      - name: BPF_PROG_TYPE_LWT_OUT
      - name: BPF_PROG_TYPE_CGROUP_DEVICE
      - name: BPF_PROG_TYPE_SK_REUSEPORT
      - name: BPF_PROG_TYPE_CGROUP_SOCKOPT
      - name: BPF_PROG_TYPE_LSM
      - name: BPF_PROG_TYPE_SCHED_ACT
      - name: BPF_PROG_TYPE_CGROUP_SKB
      - name: BPF_PROG_TYPE_LWT_XMIT
      - name: BPF_PROG_TYPE_SK_MSG
      - name: BPF_PROG_TYPE_FLOW_DISSECTOR
      - name: BPF_PROG_TYPE_TRACING
      - name: BPF_PROG_TYPE_SK_LOOKUP
      - name: BPF_PROG_TYPE_SOCKET_FILTER
      - name: BPF_PROG_TYPE_TRACEPOINT
      - name: BPF_PROG_TYPE_CGROUP_SOCK
      - name: BPF_PROG_TYPE_RAW_TRACEPOINT
      - name: BPF_PROG_TYPE_SOCK_OPS
      - name: BPF_PROG_TYPE_LWT_SEG6LOCAL
      - name: BPF_PROG_TYPE_CGROUP_SYSCTL
      - name: BPF_PROG_TYPE_STRUCT_OPS
      item_type: enum
      name: bpf_prog_type
      pos:
        line_end: 196
        line_start: 164
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_CGROUP_INET_INGRESS
      - name: BPF_CGROUP_SOCK_OPS
      - name: BPF_SK_MSG_VERDICT
      - name: BPF_CGROUP_INET6_CONNECT
      - name: BPF_CGROUP_UDP6_SENDMSG
      - name: BPF_CGROUP_UDP4_RECVMSG
      - name: BPF_TRACE_RAW_TP
      - name: BPF_LSM_MAC
      - name: BPF_CGROUP_INET4_GETSOCKNAME
      - name: BPF_XDP_CPUMAP
      - name: BPF_SK_SKB_STREAM_PARSER
      - name: BPF_CGROUP_INET4_BIND
      - name: BPF_CGROUP_INET4_POST_BIND
      - name: BPF_LIRC_MODE2
      - name: BPF_CGROUP_UDP6_RECVMSG
      - name: BPF_TRACE_FENTRY
      - name: BPF_TRACE_ITER
      - name: BPF_CGROUP_INET6_GETSOCKNAME
      - name: BPF_SK_LOOKUP
      - name: __MAX_BPF_ATTACH_TYPE
      - name: BPF_CGROUP_INET_EGRESS
      - name: BPF_SK_SKB_STREAM_VERDICT
      - name: BPF_CGROUP_INET6_BIND
      - name: BPF_CGROUP_INET6_POST_BIND
      - name: BPF_FLOW_DISSECTOR
      - name: BPF_CGROUP_GETSOCKOPT
      - name: BPF_TRACE_FEXIT
      - name: BPF_CGROUP_INET4_GETPEERNAME
      - name: BPF_XDP_DEVMAP
      - name: BPF_XDP
      - name: BPF_CGROUP_INET_SOCK_CREATE
      - name: BPF_CGROUP_DEVICE
      - name: BPF_CGROUP_INET4_CONNECT
      - name: BPF_CGROUP_UDP4_SENDMSG
      - name: BPF_CGROUP_SYSCTL
      - name: BPF_CGROUP_SETSOCKOPT
      - name: BPF_MODIFY_RETURN
      - name: BPF_CGROUP_INET6_GETPEERNAME
      - name: BPF_CGROUP_INET_SOCK_RELEASE
      item_type: enum
      name: bpf_attach_type
      pos:
        line_end: 238
        line_start: 198
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_LINK_TYPE_UNSPEC
        value: '0'
      - name: BPF_LINK_TYPE_TRACING
        value: '2'
      - name: BPF_LINK_TYPE_CGROUP
        value: '3'
      - name: BPF_LINK_TYPE_RAW_TRACEPOINT
        value: '1'
      - name: BPF_LINK_TYPE_ITER
        value: '4'
      - name: BPF_LINK_TYPE_NETNS
        value: '5'
      - name: BPF_LINK_TYPE_XDP
        value: '6'
      - name: MAX_BPF_LINK_TYPE
      item_type: enum
      name: bpf_link_type
      pos:
        line_end: 252
        line_start: 242
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_STATS_RUN_TIME
        value: '0'
      item_type: enum
      name: bpf_stats_type
      pos:
        line_end: 454
        line_start: 451
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_STACK_BUILD_ID_EMPTY
        value: '0'
      - name: BPF_STACK_BUILD_ID_IP
        value: '2'
      - name: BPF_STACK_BUILD_ID_VALID
        value: '1'
      item_type: enum
      name: bpf_stack_build_id_status
      pos:
        line_end: 463
        line_start: 456
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: __BPF_FUNC_MAPPER
      item_type: enum
      name: bpf_func_id
      pos:
        line_end: 3998
        line_start: 3997
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_ADJ_ROOM_NET
      - name: BPF_ADJ_ROOM_MAC
      item_type: enum
      name: bpf_adj_room_mode
      pos:
        line_end: 4147
        line_start: 4144
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_HDR_START_MAC
      - name: BPF_HDR_START_NET
      item_type: enum
      name: bpf_hdr_start_off
      pos:
        line_end: 4153
        line_start: 4150
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_LWT_ENCAP_SEG6
      - name: BPF_LWT_ENCAP_SEG6_INLINE
      - name: BPF_LWT_ENCAP_IP
      item_type: enum
      name: bpf_lwt_encap_mode
      pos:
        line_end: 4160
        line_start: 4156
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_OK
        value: '0'
      - name: BPF_REDIRECT
        value: '7'
      - name: BPF_LWT_REROUTE
        value: '128'
      - name: BPF_DROP
        value: '2'
      item_type: enum
      name: bpf_ret_code
      pos:
        line_end: 4263
        line_start: 4248
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: XDP_ABORTED
        value: '0'
      - name: XDP_DROP
      - name: XDP_REDIRECT
      - name: XDP_TX
      - name: XDP_PASS
      item_type: enum
      name: xdp_action
      pos:
        line_end: 4362
        line_start: 4356
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: SK_DROP
        value: '0'
      - name: SK_PASS
      item_type: enum
      name: sk_action
      pos:
        line_end: 4407
        line_start: 4404
        source_file: /src/lxc/src/include/bpf.h
    - enumerators:
      - name: BPF_FD_TYPE_RAW_TRACEPOINT
      - name: BPF_FD_TYPE_TRACEPOINT
      - name: BPF_FD_TYPE_KPROBE
      - name: BPF_FD_TYPE_KRETPROBE
      - name: BPF_FD_TYPE_UPROBE
      - name: BPF_FD_TYPE_URETPROBE
      item_type: enum
      name: bpf_task_fd_type
      pos:
        line_end: 5026
        line_start: 5019
        source_file: /src/lxc/src/include/bpf.h
    preproc_defs:
    - item_type: preproc_def
      name: BPF_JMP32
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x06\t"
    - item_type: preproc_def
      name: BPF_ALU64
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x07\t"
    - item_type: preproc_def
      name: BPF_DW
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x18\t"
    - item_type: preproc_def
      name: BPF_XADD
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xc0\t"
    - item_type: preproc_def
      name: BPF_MOV
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xb0\t"
    - item_type: preproc_def
      name: BPF_ARSH
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xc0\t"
    - item_type: preproc_def
      name: BPF_END
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xd0\t"
    - item_type: preproc_def
      name: BPF_TO_LE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x00\t"
    - item_type: preproc_def
      name: BPF_TO_BE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x08\t"
    - item_type: preproc_def
      name: BPF_FROM_LE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: BPF_TO_LE
    - item_type: preproc_def
      name: BPF_FROM_BE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: BPF_TO_BE
    - item_type: preproc_def
      name: BPF_JNE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x50\t"
    - item_type: preproc_def
      name: BPF_JLT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xa0\t"
    - item_type: preproc_def
      name: BPF_JLE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xb0\t"
    - item_type: preproc_def
      name: BPF_JSGT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x60\t"
    - item_type: preproc_def
      name: BPF_JSGE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x70\t"
    - item_type: preproc_def
      name: BPF_JSLT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xc0\t"
    - item_type: preproc_def
      name: BPF_JSLE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0xd0\t"
    - item_type: preproc_def
      name: BPF_CALL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x80\t"
    - item_type: preproc_def
      name: BPF_EXIT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: "0x90\t"
    - item_type: preproc_def
      name: MAX_BPF_REG
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: __MAX_BPF_REG
    - item_type: preproc_def
      name: MAX_BPF_ATTACH_TYPE
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: __MAX_BPF_ATTACH_TYPE
    - item_type: preproc_def
      name: BPF_F_ALLOW_OVERRIDE
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: BPF_F_ALLOW_MULTI
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: BPF_F_REPLACE
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: BPF_F_STRICT_ALIGNMENT
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: BPF_F_ANY_ALIGNMENT
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: BPF_F_TEST_RND_HI32
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: BPF_F_TEST_STATE_FREQ
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: BPF_F_SLEEPABLE
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: BPF_PSEUDO_MAP_FD
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BPF_PSEUDO_MAP_VALUE
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: '2'
    - item_type: preproc_def
      name: BPF_PSEUDO_BTF_ID
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: '3'
    - item_type: preproc_def
      name: BPF_PSEUDO_CALL
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BPF_F_QUERY_EFFECTIVE
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: BPF_F_TEST_RUN_ON_CPU
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: BPF_BUILD_ID_SIZE
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: '20'
    - item_type: preproc_def
      name: BPF_OBJ_NAME_LEN
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: 16U
    - item_type: preproc_def
      name: XDP_PACKET_HEADROOM
      pos:
        line_end: 4350
        line_start: 4349
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: '256'
    - item_type: preproc_def
      name: BPF_TAG_SIZE
      pos:
        line_end: 4454
        line_start: 4453
        source_file: /src/lxc/src/include/bpf.h
      type_or_value: '8'
    structs:
    - fields:
      - name: code
        type: __u8
      - name: dst_reg
        type: __u8
      - name: src_reg
        type: __u8
      - name: 'off'
        type: __s16
      - name: imm
        type: __s32
      item_type: struct
      name: bpf_insn
      pos:
        line_end: 64
        line_start: 58
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: prefixlen
        type: __u32
      - name: data[0]
        type: __u8
      item_type: struct
      name: bpf_lpm_trie_key
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: cgroup_inode_id
        type: __u64
      - name: attach_type
        type: __u32
      item_type: struct
      name: bpf_cgroup_storage_key
      pos:
        line_end: 75
        line_start: 72
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: status
        type: __s32
      - name: build_id[BPF_BUILD_ID_SIZE]
        type: unsigned char
      item_type: struct
      name: bpf_stack_build_id
      pos:
        line_end: 473
        line_start: 466
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: len
        type: __u32
      - name: pkt_type
        type: __u32
      - name: mark
        type: __u32
      - name: queue_mapping
        type: __u32
      - name: protocol
        type: __u32
      - name: vlan_present
        type: __u32
      - name: vlan_tci
        type: __u32
      - name: vlan_proto
        type: __u32
      - name: priority
        type: __u32
      - name: ingress_ifindex
        type: __u32
      - name: ifindex
        type: __u32
      - name: tc_index
        type: __u32
      - name: cb[5]
        type: __u32
      - name: hash
        type: __u32
      - name: tc_classid
        type: __u32
      - name: data
        type: __u32
      - name: data_end
        type: __u32
      - name: napi_id
        type: __u32
      - name: family
        type: __u32
      - name: remote_ip4
        type: __u32
      - name: local_ip4
        type: __u32
      - name: remote_ip6[4]
        type: __u32
      - name: local_ip6[4]
        type: __u32
      - name: remote_port
        type: __u32
      - name: local_port
        type: __u32
      - name: data_meta
        type: __u32
      - name: tstamp
        type: __u64
      - name: wire_len
        type: __u32
      - name: gso_segs
        type: __u32
      - name: gso_size
        type: __u32
      item_type: struct
      name: __sk_buff
      pos:
        line_end: 4213
        line_start: 4176
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: tunnel_id
        type: __u32
      - name: tunnel_tos
        type: __u8
      - name: tunnel_ttl
        type: __u8
      - name: tunnel_ext
        type: __u16
      - name: tunnel_label
        type: __u32
      item_type: struct
      name: bpf_tunnel_key
      pos:
        line_end: 4225
        line_start: 4215
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: reqid
        type: __u32
      - name: spi
        type: __u32
      - name: family
        type: __u16
      - name: ext
        type: __u16
      item_type: struct
      name: bpf_xfrm_state
      pos:
        line_end: 4239
        line_start: 4230
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: bound_dev_if
        type: __u32
      - name: family
        type: __u32
      - name: type
        type: __u32
      - name: protocol
        type: __u32
      - name: mark
        type: __u32
      - name: priority
        type: __u32
      - name: src_ip4
        type: __u32
      - name: src_ip6[4]
        type: __u32
      - name: src_port
        type: __u32
      - name: dst_port
        type: __u32
      - name: dst_ip4
        type: __u32
      - name: dst_ip6[4]
        type: __u32
      - name: state
        type: __u32
      - name: rx_queue_mapping
        type: __s32
      item_type: struct
      name: bpf_sock
      pos:
        line_end: 4281
        line_start: 4265
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: snd_cwnd
        type: __u32
      - name: srtt_us
        type: __u32
      - name: rtt_min
        type: __u32
      - name: snd_ssthresh
        type: __u32
      - name: rcv_nxt
        type: __u32
      - name: snd_nxt
        type: __u32
      - name: snd_una
        type: __u32
      - name: mss_cache
        type: __u32
      - name: ecn_flags
        type: __u32
      - name: rate_delivered
        type: __u32
      - name: rate_interval_us
        type: __u32
      - name: packets_out
        type: __u32
      - name: retrans_out
        type: __u32
      - name: total_retrans
        type: __u32
      - name: segs_in
        type: __u32
      - name: data_segs_in
        type: __u32
      - name: segs_out
        type: __u32
      - name: data_segs_out
        type: __u32
      - name: lost_out
        type: __u32
      - name: sacked_out
        type: __u32
      - name: bytes_received
        type: __u64
      - name: bytes_acked
        type: __u64
      - name: dsack_dups
        type: __u32
      - name: delivered
        type: __u32
      - name: delivered_ce
        type: __u32
      - name: icsk_retransmits
        type: __u32
      item_type: struct
      name: bpf_tcp_sock
      pos:
        line_end: 4326
        line_start: 4283
        source_file: /src/lxc/src/include/bpf.h
    - fields: []
      item_type: struct
      name: bpf_sock_tuple
      pos:
        line_end: 4343
        line_start: 4328
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: queue_id
        type: __u32
      item_type: struct
      name: bpf_xdp_sock
      pos:
        line_end: 4347
        line_start: 4345
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: data
        type: __u32
      - name: data_end
        type: __u32
      - name: data_meta
        type: __u32
      - name: ingress_ifindex
        type: __u32
      - name: rx_queue_index
        type: __u32
      - name: egress_ifindex
        type: __u32
      item_type: struct
      name: xdp_md
      pos:
        line_end: 4376
        line_start: 4367
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: ifindex
        type: __u32
      - name: bpf_prog
        type: "union {\n\t\tint   fd;  /* prog fd on map write */\n\t\t__u32 id;  /*
          prog id on map read */\n\t}"
      item_type: struct
      name: bpf_devmap_val
      pos:
        line_end: 4389
        line_start: 4383
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: qsize
        type: __u32
      - name: bpf_prog
        type: "union {\n\t\tint   fd;\t/* prog fd on map write */\n\t\t__u32 id;\t/*
          prog id on map read */\n\t}"
      item_type: struct
      name: bpf_cpumap_val
      pos:
        line_end: 4402
        line_start: 4396
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: family
        type: __u32
      - name: remote_ip4
        type: __u32
      - name: local_ip4
        type: __u32
      - name: remote_ip6[4]
        type: __u32
      - name: local_ip6[4]
        type: __u32
      - name: remote_port
        type: __u32
      - name: local_port
        type: __u32
      - name: size
        type: __u32
      item_type: struct
      name: sk_msg_md
      pos:
        line_end: 4426
        line_start: 4412
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: len
        type: __u32
      - name: eth_protocol
        type: __u32
      - name: ip_protocol
        type: __u32
      - name: bind_inany
        type: __u32
      - name: hash
        type: __u32
      item_type: struct
      name: sk_reuseport_md
      pos:
        line_end: 4451
        line_start: 4428
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: type
        type: __u32
      - name: id
        type: __u32
      - name: tag[BPF_TAG_SIZE]
        type: __u8
      - name: jited_prog_len
        type: __u32
      - name: xlated_prog_len
        type: __u32
      - name: jited_prog_insns
        type: __aligned_u64
      - name: xlated_prog_insns
        type: __aligned_u64
      - name: load_time
        type: __u64
      - name: created_by_uid
        type: __u32
      - name: nr_map_ids
        type: __u32
      - name: map_ids
        type: __aligned_u64
      - name: name[BPF_OBJ_NAME_LEN]
        type: char
      - name: ifindex
        type: __u32
      - name: gpl_compatible
        type: __u32
      - name: netns_dev
        type: __u64
      - name: netns_ino
        type: __u64
      - name: nr_jited_ksyms
        type: __u32
      - name: nr_jited_func_lens
        type: __u32
      - name: jited_ksyms
        type: __aligned_u64
      - name: jited_func_lens
        type: __aligned_u64
      - name: btf_id
        type: __u32
      - name: func_info_rec_size
        type: __u32
      - name: func_info
        type: __aligned_u64
      - name: nr_func_info
        type: __u32
      - name: nr_line_info
        type: __u32
      - name: line_info
        type: __aligned_u64
      - name: jited_line_info
        type: __aligned_u64
      - name: nr_jited_line_info
        type: __u32
      - name: line_info_rec_size
        type: __u32
      - name: jited_line_info_rec_size
        type: __u32
      - name: nr_prog_tags
        type: __u32
      - name: prog_tags
        type: __aligned_u64
      - name: run_time_ns
        type: __u64
      - name: run_cnt
        type: __u64
      item_type: struct
      name: bpf_prog_info
      pos:
        line_end: 4491
        line_start: 4455
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: type
        type: __u32
      - name: id
        type: __u32
      - name: key_size
        type: __u32
      - name: value_size
        type: __u32
      - name: max_entries
        type: __u32
      - name: map_flags
        type: __u32
      - name: name[BPF_OBJ_NAME_LEN]
        type: char
      - name: ifindex
        type: __u32
      - name: btf_vmlinux_value_type_id
        type: __u32
      - name: netns_dev
        type: __u64
      - name: netns_ino
        type: __u64
      - name: btf_id
        type: __u32
      - name: btf_key_type_id
        type: __u32
      - name: btf_value_type_id
        type: __u32
      item_type: struct
      name: bpf_map_info
      pos:
        line_end: 4508
        line_start: 4493
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: btf
        type: __aligned_u64
      - name: btf_size
        type: __u32
      - name: id
        type: __u32
      - name: name
        type: __aligned_u64
      - name: name_len
        type: __u32
      - name: kernel_btf
        type: __u32
      item_type: struct
      name: bpf_btf_info
      pos:
        line_end: 4517
        line_start: 4510
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: type
        type: __u32
      - name: id
        type: __u32
      - name: prog_id
        type: __u32
      item_type: struct
      name: bpf_link_info
      pos:
        line_end: 4552
        line_start: 4519
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: user_family
        type: __u32
      - name: user_ip4
        type: __u32
      - name: user_ip6[4]
        type: __u32
      - name: user_port
        type: __u32
      - name: family
        type: __u32
      - name: type
        type: __u32
      - name: protocol
        type: __u32
      - name: msg_src_ip4
        type: __u32
      - name: msg_src_ip6[4]
        type: __u32
      item_type: struct
      name: bpf_sock_addr
      pos:
        line_end: 4579
        line_start: 4558
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: op
        type: __u32
      - name: family
        type: __u32
      - name: remote_ip4
        type: __u32
      - name: local_ip4
        type: __u32
      - name: remote_ip6[4]
        type: __u32
      - name: local_ip6[4]
        type: __u32
      - name: remote_port
        type: __u32
      - name: local_port
        type: __u32
      - name: is_fullsock
        type: __u32
      - name: snd_cwnd
        type: __u32
      - name: srtt_us
        type: __u32
      - name: bpf_sock_ops_cb_flags
        type: __u32
      - name: state
        type: __u32
      - name: rtt_min
        type: __u32
      - name: snd_ssthresh
        type: __u32
      - name: rcv_nxt
        type: __u32
      - name: snd_nxt
        type: __u32
      - name: snd_una
        type: __u32
      - name: mss_cache
        type: __u32
      - name: ecn_flags
        type: __u32
      - name: rate_delivered
        type: __u32
      - name: rate_interval_us
        type: __u32
      - name: packets_out
        type: __u32
      - name: retrans_out
        type: __u32
      - name: total_retrans
        type: __u32
      - name: segs_in
        type: __u32
      - name: data_segs_in
        type: __u32
      - name: segs_out
        type: __u32
      - name: data_segs_out
        type: __u32
      - name: lost_out
        type: __u32
      - name: sacked_out
        type: __u32
      - name: sk_txhash
        type: __u32
      - name: bytes_received
        type: __u64
      - name: bytes_acked
        type: __u64
      - name: skb_len
        type: __u32
      - name: skb_tcp_flags
        type: __u32
      item_type: struct
      name: bpf_sock_ops
      pos:
        line_end: 4661
        line_start: 4587
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: counter
        type: __u64
      - name: enabled
        type: __u64
      - name: running
        type: __u64
      item_type: struct
      name: bpf_perf_event_value
      pos:
        line_end: 4916
        line_start: 4912
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: access_type
        type: __u32
      - name: major
        type: __u32
      - name: minor
        type: __u32
      item_type: struct
      name: bpf_cgroup_dev_ctx
      pos:
        line_end: 4934
        line_start: 4929
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: args[0]
        type: __u64
      item_type: struct
      name: bpf_raw_tracepoint_args
      pos:
        line_end: 4938
        line_start: 4936
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: family
        type: __u8
      - name: l4_protocol
        type: __u8
      - name: sport
        type: __be16
      - name: dport
        type: __be16
      - name: tot_len
        type: __u16
      - name: ifindex
        type: __u32
      - name: h_vlan_proto
        type: __be16
      - name: h_vlan_TCI
        type: __be16
      - name: smac[6]
        type: __u8
      - name: dmac[6]
        type: __u8
      item_type: struct
      name: bpf_fib_lookup
      pos:
        line_end: 5007
        line_start: 4960
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: nh_family
        type: __u32
      item_type: struct
      name: bpf_redir_neigh
      pos:
        line_end: 5017
        line_start: 5009
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: nhoff
        type: __u16
      - name: thoff
        type: __u16
      - name: addr_proto
        type: __u16
      - name: is_frag
        type: __u8
      - name: is_first_frag
        type: __u8
      - name: is_encap
        type: __u8
      - name: ip_proto
        type: __u8
      - name: n_proto
        type: __be16
      - name: sport
        type: __be16
      - name: dport
        type: __be16
      - name: flags
        type: __u32
      - name: flow_label
        type: __be32
      item_type: struct
      name: bpf_flow_keys
      pos:
        line_end: 5057
        line_start: 5034
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: insn_off
        type: __u32
      - name: type_id
        type: __u32
      item_type: struct
      name: bpf_func_info
      pos:
        line_end: 5062
        line_start: 5059
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: insn_off
        type: __u32
      - name: file_name_off
        type: __u32
      - name: line_off
        type: __u32
      - name: line_col
        type: __u32
      item_type: struct
      name: bpf_line_info
      pos:
        line_end: 5072
        line_start: 5067
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: val
        type: __u32
      item_type: struct
      name: bpf_spin_lock
      pos:
        line_end: 5076
        line_start: 5074
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: write
        type: __u32
      - name: file_pos
        type: __u32
      item_type: struct
      name: bpf_sysctl
      pos:
        line_end: 5085
        line_start: 5078
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: level
        type: __s32
      - name: optname
        type: __s32
      - name: optlen
        type: __s32
      - name: retval
        type: __s32
      item_type: struct
      name: bpf_sockopt
      pos:
        line_end: 5096
        line_start: 5087
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: pid
        type: __u32
      - name: tgid
        type: __u32
      item_type: struct
      name: bpf_pidns_info
      pos:
        line_end: 5101
        line_start: 5098
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: family
        type: __u32
      - name: protocol
        type: __u32
      - name: remote_ip4
        type: __u32
      - name: remote_ip6[4]
        type: __u32
      - name: remote_port
        type: __u32
      - name: local_ip4
        type: __u32
      - name: local_ip6[4]
        type: __u32
      - name: local_port
        type: __u32
      item_type: struct
      name: bpf_sk_lookup
      pos:
        line_end: 5115
        line_start: 5104
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: '*ptr'
        type: void
      - name: type_id
        type: __u32
      - name: flags
        type: __u32
      item_type: struct
      name: btf_ptr
      pos:
        line_end: 5129
        line_start: 5125
        source_file: /src/lxc/src/include/bpf.h
    typedefs: []
    union:
    - fields:
      - name: map
        type: "struct {\n\t\t__u32\tmap_fd;\n\t}"
      item_type: union
      name: bpf_iter_link_info
      pos:
        line_end: 81
        line_start: 77
        source_file: /src/lxc/src/include/bpf.h
    - fields:
      - name: batch
        type: "struct { /* struct used by BPF_MAP_*_BATCH commands */\n\t\t__aligned_u64\tin_batch;\t/*
          start batch,\n\t\t\t\t\t\t * NULL to start from beginning\n\t\t\t\t\t\t
          */\n\t\t__aligned_u64\tout_batch;\t/* output: next start batch */\n\t\t__aligned_u64\tkeys;\n\t\t__aligned_u64\tvalues;\n\t\t__u32\t\tcount;\t\t/*
          input/output:\n\t\t\t\t\t\t * input: # of key/value\n\t\t\t\t\t\t * elements\n\t\t\t\t\t\t
          * output: # of filled elements\n\t\t\t\t\t\t */\n\t\t__u32\t\tmap_fd;\n\t\t__u64\t\telem_flags;\n\t\t__u64\t\tflags;\n\t}"
      - name: test
        type: "struct { /* anonymous struct used by BPF_PROG_TEST_RUN command */\n\t\t__u32\t\tprog_fd;\n\t\t__u32\t\tretval;\n\t\t__u32\t\tdata_size_in;\t/*
          input: len of data_in */\n\t\t__u32\t\tdata_size_out;\t/* input/output:
          len of data_out\n\t\t\t\t\t\t *   returns ENOSPC if data_out\n\t\t\t\t\t\t
          *   is too small.\n\t\t\t\t\t\t */\n\t\t__aligned_u64\tdata_in;\n\t\t__aligned_u64\tdata_out;\n\t\t__u32\t\trepeat;\n\t\t__u32\t\tduration;\n\t\t__u32\t\tctx_size_in;\t/*
          input: len of ctx_in */\n\t\t__u32\t\tctx_size_out;\t/* input/output: len
          of ctx_out\n\t\t\t\t\t\t *   returns ENOSPC if ctx_out\n\t\t\t\t\t\t *   is
          too small.\n\t\t\t\t\t\t */\n\t\t__aligned_u64\tctx_in;\n\t\t__aligned_u64\tctx_out;\n\t\t__u32\t\tflags;\n\t\t__u32\t\tcpu;\n\t}"
      - name: info
        type: "struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */\n\t\t__u32\t\tbpf_fd;\n\t\t__u32\t\tinfo_len;\n\t\t__aligned_u64\tinfo;\n\t}"
      - name: query
        type: "struct { /* anonymous struct used by BPF_PROG_QUERY command */\n\t\t__u32\t\ttarget_fd;\t/*
          container object to query */\n\t\t__u32\t\tattach_type;\n\t\t__u32\t\tquery_flags;\n\t\t__u32\t\tattach_flags;\n\t\t__aligned_u64\tprog_ids;\n\t\t__u32\t\tprog_cnt;\n\t}"
      - name: raw_tracepoint
        type: "struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command
          */\n\t\t__u64 name;\n\t\t__u32 prog_fd;\n\t}"
      - name: task_fd_query
        type: "struct {\n\t\t__u32\t\tpid;\t\t/* input: pid */\n\t\t__u32\t\tfd;\t\t/*
          input: fd */\n\t\t__u32\t\tflags;\t\t/* input: flags */\n\t\t__u32\t\tbuf_len;\t/*
          input/output: buf len */\n\t\t__aligned_u64\tbuf;\t\t/* input/output:\n\t\t\t\t\t\t
          *   tp_name for tracepoint\n\t\t\t\t\t\t *   symbol for kprobe\n\t\t\t\t\t\t
          *   filename for uprobe\n\t\t\t\t\t\t */\n\t\t__u32\t\tprog_id;\t/* output:
          prod_id */\n\t\t__u32\t\tfd_type;\t/* output: BPF_FD_TYPE_* */\n\t\t__u64\t\tprobe_offset;\t/*
          output: probe_offset */\n\t\t__u64\t\tprobe_addr;\t/* output: probe_addr
          */\n\t}"
      - name: link_create
        type: "struct { /* struct used by BPF_LINK_CREATE command */\n\t\t__u32\t\tprog_fd;\t/*
          eBPF program to attach */\n\t\tunion {\n\t\t\t__u32\t\ttarget_fd;\t/* object
          to attach to */\n\t\t\t__u32\t\ttarget_ifindex; /* target ifindex */\n\t\t};\n\t\t__u32\t\tattach_type;\t/*
          attach type */\n\t\t__u32\t\tflags;\t\t/* extra flags */\n\t\tunion {\n\t\t\t__u32\t\ttarget_btf_id;\t/*
          btf_id of target to attach to */\n\t\t\tstruct {\n\t\t\t\t__aligned_u64\titer_info;\t/*
          extra bpf_iter_link_info */\n\t\t\t\t__u32\t\titer_info_len;\t/* iter_info
          length */\n\t\t\t};\n\t\t};\n\t}"
      - name: link_update
        type: "struct { /* struct used by BPF_LINK_UPDATE command */\n\t\t__u32\t\tlink_fd;\t/*
          link fd */\n\t\t/* new program fd to update link with */\n\t\t__u32\t\tnew_prog_fd;\n\t\t__u32\t\tflags;\t\t/*
          extra flags */\n\t\t/* expected link's program fd; is specified only if\n\t\t
          * BPF_F_REPLACE flag is set in flags */\n\t\t__u32\t\told_prog_fd;\n\t}"
      - name: link_detach
        type: "struct {\n\t\t__u32\t\tlink_fd;\n\t}"
      - name: enable_stats
        type: "struct { /* struct used by BPF_ENABLE_STATS command */\n\t\t__u32\t\ttype;\n\t}"
      - name: iter_create
        type: "struct { /* struct used by BPF_ITER_CREATE command */\n\t\t__u32\t\tlink_fd;\n\t\t__u32\t\tflags;\n\t}"
      - name: prog_bind_map
        type: "struct { /* struct used by BPF_PROG_BIND_MAP command */\n\t\t__u32\t\tprog_fd;\n\t\t__u32\t\tmap_fd;\n\t\t__u32\t\tflags;\t\t/*
          extra flags */\n\t}"
      item_type: union
      name: bpf_attr
      pos:
        line_end: 703
        line_start: 477
        source_file: /src/lxc/src/include/bpf.h
- function_names: []
  source_file: /src/lxc/src/include/fexecve.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strlcat
  source_file: /src/lxc/src/include/strlcat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/include/strlcat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strchrnul
  source_file: /src/lxc/src/include/strchrnul.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NETNS_RTA
  - __NETLINK_ALIGN
  - __NLMSG_OK
  - __NLMSG_NEXT
  - __NLMSG_DATA
  - __NLMSG_DATAEND
  - __NLMSG_RTA
  - __RTA_DATALEN
  - __RTA_NEXT
  - __RTA_OK
  - __NLMSG_RTAOK
  - __IN6_IS_ADDR_LINKLOCAL
  - __IN6_IS_ADDR_MC_LINKLOCAL
  - __RTA_DATA
  - copy_addr
  - gen_netmask
  - copy_lladdr
  - nl_msg_to_ifaddr
  - __ifaddrs_netlink_send
  - __ifaddrs_netlink_recv
  - __rtnl_enumerate
  - netns_freeifaddrs
  - netns_getifaddrs
  source_file: /src/lxc/src/include/netns_ifaddrs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IFADDRS_HASH_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/include/netns_ifaddrs.c
      type_or_value: '64'
    structs:
    - fields:
      - name: sll_family
        type: unsigned short
      - name: sll_ifindex
        type: int
      - name: sll_hatype
        type: unsigned short
      - name: sll_pkttype
        type: unsigned char
      - name: sll_addr[24]
        type: unsigned char
      item_type: struct
      name: sockaddr_ll_hack
      pos:
        line_end: 77
        line_start: 71
        source_file: /src/lxc/src/include/netns_ifaddrs.c
    - fields:
      - name: ifa
        type: struct netns_ifaddrs
      - name: '*hash_next'
        type: struct ifaddrs_storage
      - name: addr
        type: union sockany
      - name: index
        type: unsigned int
      - name: name[IFNAMSIZ + 1]
        type: char
      item_type: struct
      name: ifaddrs_storage
      pos:
        line_end: 92
        line_start: 86
        source_file: /src/lxc/src/include/netns_ifaddrs.c
    - fields:
      - name: '*first'
        type: struct ifaddrs_storage
      - name: '*last'
        type: struct ifaddrs_storage
      - name: '*hash[IFADDRS_HASH_SIZE]'
        type: struct ifaddrs_storage
      item_type: struct
      name: ifaddrs_ctx
      pos:
        line_end: 98
        line_start: 94
        source_file: /src/lxc/src/include/netns_ifaddrs.c
    typedefs: []
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: ll
        type: struct sockaddr_ll_hack
      - name: v4
        type: struct sockaddr_in
      - name: v6
        type: struct sockaddr_in6
      item_type: union
      name: sockany
      pos:
        line_end: 84
        line_start: 79
        source_file: /src/lxc/src/include/netns_ifaddrs.c
    - fields:
      - name: buf[8192]
        type: uint8_t
      - name: req
        type: "struct {\n\t\t\tstruct nlmsghdr nlh;\n\t\t\tstruct rtgenmsg g;\n\t\t}"
      - name: reply
        type: struct nlmsghdr
      item_type: union
      name: u
      pos:
        line_end: 389
        line_start: 382
        source_file: /src/lxc/src/include/netns_ifaddrs.c
- function_names: []
  source_file: /src/lxc/src/include/strchrnul.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FIX
  - atou
  - __getgrent_a
  - itoa
  - __nscd_query
  - __getgr_a
  - getgr_r
  - getgrgid_r
  source_file: /src/lxc/src/include/getgrgid_r.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOGIN_NAME_MAX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '256'
    - item_type: preproc_def
      name: NSCDVERSION
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '2'
    - item_type: preproc_def
      name: GETPWBYNAME
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GETPWBYUID
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GETGRBYNAME
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '2'
    - item_type: preproc_def
      name: GETGRBYGID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '3'
    - item_type: preproc_def
      name: GETINITGR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '15'
    - item_type: preproc_def
      name: REQVERSION
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '0'
    - item_type: preproc_def
      name: REQTYPE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '1'
    - item_type: preproc_def
      name: REQKEYLEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '2'
    - item_type: preproc_def
      name: REQ_LEN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PWVERSION
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PWFOUND
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PWNAMELEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PWPASSWDLEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PWUID
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PWGID
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PWGECOSLEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '6'
    - item_type: preproc_def
      name: PWDIRLEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PWSHELLLEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PW_LEN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '9'
    - item_type: preproc_def
      name: GRVERSION
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GRFOUND
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GRNAMELEN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '2'
    - item_type: preproc_def
      name: GRPASSWDLEN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '3'
    - item_type: preproc_def
      name: GRGID
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '4'
    - item_type: preproc_def
      name: GRMEMCNT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '5'
    - item_type: preproc_def
      name: GR_LEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '6'
    - item_type: preproc_def
      name: INITGRVERSION
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '0'
    - item_type: preproc_def
      name: INITGRFOUND
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INITGRNGRPS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '2'
    - item_type: preproc_def
      name: INITGR_LEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/lxc/src/include/getgrgid_r.c
      type_or_value: '3'
    structs:
    - fields:
      - name: sun_family
        type: short
      - name: sun_path[21]
        type: char
      item_type: struct
      name: addr = {AF_UNIX, "/var/run/nscd/socket"}
      pos:
        line_end: 159
        line_start: 156
        source_file: /src/lxc/src/include/getgrgid_r.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/lxc/src/include/netns_ifaddrs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __ifa_broadaddr
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/lxc/src/include/netns_ifaddrs.h
      type_or_value: ifa_ifu.ifu_broadaddr
    - item_type: preproc_def
      name: __ifa_dstaddr
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/lxc/src/include/netns_ifaddrs.h
      type_or_value: ifa_ifu.ifu_dstaddr
    structs:
    - fields:
      - name: '*ifa_next'
        type: struct netns_ifaddrs
      - name: '*ifa_name'
        type: char
      - name: ifa_ifindex
        type: int
      - name: ifa_flags
        type: unsigned
      - name: ifa_mtu
        type: int
      - name: ifa_prefixlen
        type: int
      - name: '*ifa_addr'
        type: struct sockaddr
      - name: '*ifa_netmask'
        type: struct sockaddr
      - name: ifa_ifu
        type: "union {\n\t\tstruct sockaddr *ifu_broadaddr;\n\t\tstruct sockaddr *ifu_dstaddr;\n\t}"
      - name: ifa_stats_type
        type: int
      item_type: struct
      name: netns_ifaddrs
      pos:
        line_end: 50
        line_start: 19
        source_file: /src/lxc/src/include/netns_ifaddrs.h
    typedefs: []
    union: []
