Commit: a25dcec6cb877eba45ead780b016a0644589e67b
Parent: 169aa558fca1079a146d0ad6346ad5c89ab7f93a
Author: ERAMOTO Masaya <eramoto.masaya@jp.fujitsu.com>
Committer: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: 2018-03-07 11:29:06
Tree: 2f74d07c63d60b04f4d8ffa683923ed7796bf6c0

shared/shell: Fix memory leak when parsing args When running the command having mandatory arguments, memory leak occurs as below: 1 bytes in 1 blocks are definitely lost in loss record 2 of 184 at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x5679C99: strdup (strdup.c:42) by 0x13A976: cmd_exec (shell.c:327) by 0x13A976: menu_exec (shell.c:375) by 0x13AEA4: shell_exec (shell.c:418) by 0x13BBF1: rl_handler (shell.c:563) by 0x53C8D72: rl_callback_read_char (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x13ACE0: input_read (shell.c:1018) by 0x13C90A: watch_callback (io-glib.c:170) by 0x4E86E24: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1) by 0x4E871EF: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1) by 0x4E87501: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1) by 0x13D244: mainloop_run (mainloop-glib.c:73) 7 bytes in 1 blocks are definitely lost in loss record 12 of 184 at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x5679C99: strdup (strdup.c:42) by 0x139EEA: strdelimit (util.c:991) by 0x13B66A: args_completion (shell.c:668) by 0x13B66A: menu_completion (shell.c:695) by 0x13B836: shell_completion (shell.c:723) by 0x53B98B6: ??? (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53B9A99: rl_complete_internal (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53B02EE: _rl_dispatch_subseq (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53B07B5: readline_internal_char (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53C8F84: rl_callback_read_char (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x13ACE0: input_read (shell.c:1018) by 0x13C90A: watch_callback (io-glib.c:170) 9 bytes in 1 blocks are definitely lost in loss record 21 of 184 at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x5679C99: strdup (strdup.c:42) by 0x13B53F: args_completion (shell.c:654) by 0x13B53F: menu_completion (shell.c:695) by 0x13B836: shell_completion (shell.c:723) by 0x53B98B6: ??? (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53B9A99: rl_complete_internal (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53B02EE: _rl_dispatch_subseq (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53B07B5: readline_internal_char (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x53C8F84: rl_callback_read_char (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x13ACE0: input_read (shell.c:1018) by 0x13C90A: watch_callback (io-glib.c:170) by 0x4E86E24: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1) 9 bytes in 1 blocks are definitely lost in loss record 22 of 184 at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x5679CE9: strndup (strndup.c:43) by 0x13A9EB: cmd_exec (shell.c:301) by 0x13A9EB: menu_exec (shell.c:375) by 0x13AEA4: shell_exec (shell.c:418) by 0x13BBF1: rl_handler (shell.c:563) by 0x53C8D72: rl_callback_read_char (in /lib/x86_64-linux-gnu/libreadline.so.7.0) by 0x13ACE0: input_read (shell.c:1018) by 0x13C90A: watch_callback (io-glib.c:170) by 0x4E86E24: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1) by 0x4E871EF: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1) by 0x4E87501: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.5400.1) by 0x13D244: mainloop_run (mainloop-glib.c:73)

Diffstat

M src/shared/shell.c | 12 +++++++++++-

1 files changed, 11 insertions(+), 1 deletions(-)

View Full Diff | Patch