currently, we call zfree(cmd->args); but the argument array needs to be freed recursively (there might be sub-args)

valgrind should have caught this when unloading cmdintrospection.so

Comment From: tezc

Maybe there is no test with command args + module unload. When I add this test to cmdinstropection.tcl, sanitizer catches the leak:

test "Module introspection unload" {
    r module unload cmdintrospection
}

Comment From: enjoy-binbin

in addition to args, look like there are also tips and history needed to free take a quick look, see the PR below