We want to go through deallocation in the main function.
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
static int cmd_quit(void)
{
cli_shutdown(cli);
- exit(0);
- /* NOTREACHED */
- return 0;
+ cli = NULL;
+
+ /* Use INT_MAX for QUIT */
+ return INT_MAX;
}
/****************************************************************************
if ((i = process_tok(tok)) >= 0) {
rc = commands[i].fn();
+ /* QUIT COMMAND */
+ if (rc == INT_MAX) {
+ TALLOC_FREE(tok);
+ rc = 0;
+ break;
+ }
} else if (i == -2) {
d_printf("%s: command abbreviation ambiguous\n",tok);
} else {
d_printf("%s: command not found\n",tok);
}
+ TALLOC_FREE(tok);
}
return rc;
if ((i = process_tok(tok)) >= 0) {
rc = commands[i].fn();
+ /* QUIT COMMAND */
+ if (rc == INT_MAX) {
+ rc = 0;
+ SAFE_FREE(line);
+ TALLOC_FREE(tok);
+ break;
+ }
} else if (i == -2) {
d_printf("%s: command abbreviation ambiguous\n",tok);
} else {
if (cmdstr) {
rc = process_command_string(cmdstr);
} else {
- process_stdin();
+ rc = process_stdin();
}
cli_shutdown(cli);