==31182== Memcheck, a memory error detector ==31182== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==31182== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info ==31182== Command: ./vty_test ==31182== ==31182== Invalid write of size 4 ==31182== at 0x4865FE0: ??? (in /usr/lib/arm-linux-gnueabihf/libarmmem.so) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid write of size 2 ==31182== at 0x4865FF8: ??? (in /usr/lib/arm-linux-gnueabihf/libarmmem.so) ==31182== Address 0x4a4c61c is 12 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid write of size 1 ==31182== at 0x4866004: ??? (in /usr/lib/arm-linux-gnueabihf/libarmmem.so) ==31182== Address 0x4a4c61e is 14 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid write of size 1 ==31182== at 0x4887720: osmo_strlcpy (utils.c:519) ==31182== by 0x48881FF: osmo_str_tolower_buf (utils.c:894) ==31182== by 0x4888283: osmo_str_tolower (utils.c:912) ==31182== by 0x48D9FD7: add_category_strings (logging_vty.c:297) ==31182== by 0x48D9FD7: gen_logging_level_cmd_strs.isra.10 (logging_vty.c:320) ==31182== by 0x48DAC4F: logging_vty_add_cmds (logging_vty.c:1008) ==31182== by 0x10CE3: main (vty_test.c:508) ==31182== Address 0x4a4c61f is 15 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x4888204: osmo_str_tolower_buf (utils.c:896) ==31182== by 0x4888283: osmo_str_tolower (utils.c:912) ==31182== by 0x48D9FD7: add_category_strings (logging_vty.c:297) ==31182== by 0x48D9FD7: gen_logging_level_cmd_strs.isra.10 (logging_vty.c:320) ==31182== by 0x48DAC4F: logging_vty_add_cmds (logging_vty.c:1008) ==31182== by 0x10CE3: main (vty_test.c:508) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid write of size 1 ==31182== at 0x488821C: osmo_str_tolower_buf (utils.c:897) ==31182== by 0x4888283: osmo_str_tolower (utils.c:912) ==31182== by 0x48D9FD7: add_category_strings (logging_vty.c:297) ==31182== by 0x48D9FD7: gen_logging_level_cmd_strs.isra.10 (logging_vty.c:320) ==31182== by 0x48DAC4F: logging_vty_add_cmds (logging_vty.c:1008) ==31182== by 0x10CE3: main (vty_test.c:508) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x4888220: osmo_str_tolower_buf (utils.c:896) ==31182== by 0x4888283: osmo_str_tolower (utils.c:912) ==31182== by 0x48D9FD7: add_category_strings (logging_vty.c:297) ==31182== by 0x48D9FD7: gen_logging_level_cmd_strs.isra.10 (logging_vty.c:320) ==31182== by 0x48DAC4F: logging_vty_add_cmds (logging_vty.c:1008) ==31182== by 0x10CE3: main (vty_test.c:508) ==31182== Address 0x4a4c619 is 9 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x484B1EC: strlen (vg_replace_strmem.c:458) ==31182== by 0x493768F: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B39F3: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x484B200: strlen (vg_replace_strmem.c:458) ==31182== by 0x493768F: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B39F3: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c619 is 9 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x484B20C: strlen (vg_replace_strmem.c:458) ==31182== by 0x493768F: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B39F3: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c61b is 11 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x4960568: _IO_default_xsputn (genops.c:455) ==31182== by 0x4937583: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B39F3: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x484B1EC: strlen (vg_replace_strmem.c:458) ==31182== by 0x493768F: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B3A47: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x484B200: strlen (vg_replace_strmem.c:458) ==31182== by 0x493768F: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B3A47: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c619 is 9 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x484B20C: strlen (vg_replace_strmem.c:458) ==31182== by 0x493768F: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B3A47: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c61b is 11 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x4960534: _IO_default_xsputn (genops.c:450) ==31182== by 0x4937583: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B3A47: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x4960540: _IO_default_xsputn (genops.c:449) ==31182== by 0x4937583: vfprintf (vfprintf.c:1637) ==31182== by 0x49D5DB3: __vsnprintf_chk (vsnprintf_chk.c:63) ==31182== by 0x48B3A47: ??? (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Address 0x4a4c61a is 10 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x4888204: osmo_str_tolower_buf (utils.c:896) ==31182== by 0x4888283: osmo_str_tolower (utils.c:912) ==31182== by 0x48D9FD7: add_category_strings (logging_vty.c:297) ==31182== by 0x48D9FD7: gen_logging_level_cmd_strs.isra.10 (logging_vty.c:320) ==31182== by 0x48DAC6F: logging_vty_add_cmds (logging_vty.c:1012) ==31182== by 0x10CE3: main (vty_test.c:508) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid write of size 1 ==31182== at 0x488821C: osmo_str_tolower_buf (utils.c:897) ==31182== by 0x4888283: osmo_str_tolower (utils.c:912) ==31182== by 0x48D9FD7: add_category_strings (logging_vty.c:297) ==31182== by 0x48D9FD7: gen_logging_level_cmd_strs.isra.10 (logging_vty.c:320) ==31182== by 0x48DAC6F: logging_vty_add_cmds (logging_vty.c:1012) ==31182== by 0x10CE3: main (vty_test.c:508) ==31182== Address 0x4a4c618 is 8 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== ==31182== Invalid read of size 1 ==31182== at 0x4888220: osmo_str_tolower_buf (utils.c:896) ==31182== by 0x4888283: osmo_str_tolower (utils.c:912) ==31182== by 0x48D9FD7: add_category_strings (logging_vty.c:297) ==31182== by 0x48D9FD7: gen_logging_level_cmd_strs.isra.10 (logging_vty.c:320) ==31182== by 0x48DAC6F: logging_vty_add_cmds (logging_vty.c:1012) ==31182== by 0x10CE3: main (vty_test.c:508) ==31182== Address 0x4a4c619 is 9 bytes after a block of size 48 alloc'd ==31182== at 0x4847568: malloc (vg_replace_malloc.c:299) ==31182== by 0x48AE0AF: talloc_named_const (in /usr/lib/arm-linux-gnueabihf/libtalloc.so.2.1.8) ==31182== Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 1 Got VTY event: 3 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 1 Got VTY event: 2 Going to test vty_cmd_string_from_valstr() Tested with %s-strings, resulting cmd = '[prefix%s%s%s%s%s][foo%s%s%s%s%s][sep%s%s%s%s%s][bar%s%s%s%s%s][end%s%s%s%s%s]' Going to test VTY node tree structure Going to execute 'enable' Returned: 0, Current node: 3 '%s# ' Going to execute 'configure terminal' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'exit' Returned: 0, Current node: 3 '%s# ' Going to execute 'configure terminal' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'end' Returned: 0, Current node: 3 '%s# ' Going to execute 'configure terminal' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'log stderr' Returned: 0, Current node: 7 '%s(config-log)# ' Going to execute 'exit' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'log stderr' Returned: 0, Current node: 7 '%s(config-log)# ' Going to execute 'end' Returned: 0, Current node: 3 '%s# ' Going to execute 'configure terminal' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'line vty' Returned: 0, Current node: 9 '%s(config-line)# ' Going to execute 'exit' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'line vty' Returned: 0, Current node: 9 '%s(config-line)# ' Going to execute 'end' Returned: 0, Current node: 3 '%s# ' Going to execute 'configure terminal' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'log stderr' Returned: 0, Current node: 7 '%s(config-log)# ' Going to execute 'line vty' Returned: 2, Current node: 7 '%s(config-log)# ' Going to execute 'end' Returned: 0, Current node: 3 '%s# ' Going to execute 'exit' Returned: 0, Current node: 3 '%s# ' Going to test VTY configuration of the stats subsystem Going to execute 'enable' Returned: 0, Current node: 3 '%s# ' Going to execute 'configure terminal' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'stats reporter foobar' Returned: 2, Current node: 4 '%s(config)# ' Going to execute 'stats interval 42' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'stats reporter log' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'prefix myprefix' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'no prefix' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level peer' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level subscriber' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level global' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level foobar' Returned: 2, Current node: 8 '%s(config-stats)# ' Going to execute 'enable' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'disable' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'exit' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'stats reporter statsd' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'prefix myprefix' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'no prefix' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level peer' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level subscriber' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level global' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'level foobar' Returned: 2, Current node: 8 '%s(config-stats)# ' Going to execute 'remote-ip 127.0.0.99' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'remote-ip 678.0.0.99' Returned: 1, Current node: 8 '%s(config-stats)# ' Going to execute 'remote-port 12321' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'local-ip 127.0.0.98' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'no local-ip' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'mtu 987' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'no mtu' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'enable' Returned: 0, Current node: 8 '%s(config-stats)# ' Going to execute 'disable' Returned: 0, CurrentGot VTY event: 3 There is no such command. Error occurred during reading the below line: level1 b Inconsistent indentation -- leading whitespace must match adjacent lines, and indentation must reflect child node levels. A mix of tabs and spaces is allowed, but their sequence must not change within a child block. Error occurred during reading the below line: level1 b Inconsistent indentation -- leading whitespace must match adjacent lines, and indentation must reflect child node levels. A mix of tabs and spaces is allowed, but their sequence must not change within a child block. Error occurred during reading the below line: child1 b node: 8 '%s(config-stats)# ' Going to execute 'exit' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'no stats reporter log' Returned: 0, Current node: 4 '%s(config)# ' Going to execute 'no stats reporter statsd' Returned: 0, Current node: 4 '%s(config)# ' reading file ok.cfg, expecting rc=0 called level1 node a called level1 child cmd a called level2 node a called level2 child cmd a called level3 node a called level3 child cmd a called level1 node b called level1 child cmd b called level2 node b called level2 child cmd b called level1 node c called level1 child cmd c called level2 node c called level2 child cmd c called level3 node c called level3 child cmd c called level2 node d called level2 child cmd d called level1 node e called level1 child cmd e called level2 node e called level2 child cmd e called level2 node f called level2 child cmd f called level1 node g called level1 child cmd g called level1 node h called level1 child cmd h got rc=0 reading file ok_more_spaces.cfg, expecting rc=0 called level1 node a called level1 child cmd a called level2 node a called level2 child cmd a called level3 node a called level3 child cmd a called level1 node b called level1 child cmd b called level2 node b called level2 child cmd b called level1 node c called level1 child cmd c called level2 node c called level2 child cmd c called level3 node c called level3 child cmd c called level2 node d called level2 child cmd d called level1 node e called level1 child cmd e called level2 node e called level2 child cmd e called level2 node f called level2 child cmd f called level1 node g called level1 child cmd g called level1 node h called level1 child cmd h got rc=0 reading file ok_tabs.cfg, expecting rc=0 called level1 node a called level1 child cmd a called level2 node a called level2 child cmd a called level3 node a called level3 child cmd a called level1 node b called level1 child cmd b called level2 node b called level2 child cmd b called level1 node c called level1 child cmd c called level2 node c called level2 child cmd c called level3 node c called level3 child cmd c called level2 node d called level2 child cmd d called level1 node e called level1 child cmd e called level2 node e called level2 child cmd e called level2 node f called level2 child cmd f called level1 node g called level1 child cmd g called level1 node h called level1 child cmd h got rc=0 reading file ok_tabs_and_spaces.cfg, expecting rc=0 called level1 node a called level1 child cmd a called level2 node a called level2 child cmd a called level3 node a called level3 child cmd a called level1 node b called level1 child cmd b called level2 node b called level2 child cmd b called level1 node c called level1 child cmd c called level2 node c called level2 child cmd c called level3 node c called level3 child cmd c called level2 node d called level2 child cmd d called level1 node e called level1 child cmd e called level2 node e called level2 child cmd e called level2 node f called level2 child cmd f called level1 node g called level1 child cmd g called level1 node h called level1 child cmd h got rc=0 reading file ok_ignore_comment.cfg, expecting rc=0 called level1 node called level1 child cmd called level2 node called level2 child cmd called level1 node got rc=0 reading file ok_ignore_blank.cfg, expecting rc=0 called level1 node called level2 node called level2 child cmd called level3 node called level3 child cmd called level1 node got rc=0 reading file fail_not_de-indented.cfg, expecting rc=-22 called level1 node a called level1 child cmd a got rc=-22 reading file fail_too_much_indent.cfg, expecting rc=-22 called level1 node a called level1 child cmd a got rc=-22 reading file fail_tabs_and_spaces.cfg, expecting rc=-22 called level1 node a called level1 child cmd a got rc=-22 reading file ok_indented_root.cfg, expecting rc=0 called level1 node a called level1 child cmd called level2 node called level2 child cmd called level1 node b got rc=0 reading file ok_empty_parent.cfg, expecting rc=0 called level1 node a called level2 node a called level3 nodeGot VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 2 Got VTY event: 1 Got VTY event: 3 a called level1 node b called level2 node b called level1 node c called level1 node d called level2 node e called level2 node f called level3 node f called level3 node g called level2 node g called level2 node h called level1 node h called level1 node i called level1 node j called level2 node j called level1 child cmd j called level1 node k called level2 node k called level3 node k called level1 child cmd k got rc=0 Going to test is_cmd_ambiguous() Going to execute 'ambiguous_nr' Called: 'ambiguous_nr [<0-23>]' (argc=0) Returned: 0, Current node: 1 '%s> ' Going to execute 'ambiguous_nr 23' Called: 'ambiguous_nr [<0-23>]' (argc=1) Returned: 0, Current node: 1 '%s> ' Going to execute 'ambiguous_nr 23 keyword' Called: 'ambiguous_nr <0-23> keyword' Returned: 0, Current node: 1 '%s> ' Going to execute 'ambiguous_str' Called: 'ambiguous_str [ARG]' (argc=0) Returned: 0, Current node: 1 '%s> ' Going to execute 'ambiguous_str arg' Called: 'ambiguous_str [ARG]' (argc=1) Returned: 0, Current node: 1 '%s> ' Going to execute 'ambiguous_str arg keyword' Called: 'ambiguous_str ARG keyword' Returned: 0, Current node: 1 '%s> ' All tests passed ==31182== ==31182== HEAP SUMMARY: ==31182== in use at exit: 236,257 bytes in 3,759 blocks ==31182== total heap usage: 6,798 allocs, 3,039 frees, 522,811 bytes allocated ==31182== ==31182== LEAK SUMMARY: ==31182== definitely lost: 0 bytes in 0 blocks ==31182== indirectly lost: 0 bytes in 0 blocks ==31182== possibly lost: 236,257 bytes in 3,759 blocks ==31182== still reachable: 0 bytes in 0 blocks ==31182== suppressed: 0 bytes in 0 blocks ==31182== Rerun with --leak-check=full to see details of leaked memory ==31182== ==31182== For counts of detected and suppressed errors, rerun with: -v ==31182== ERROR SUMMARY: 1304 errors from 19 contexts (suppressed: 6 from 3)