@@ -585,7 +585,7 @@ struct cli_def *cli_init() {
585585
586586 cli -> buf_size = 1024 ;
587587 if (!(cli -> buffer = calloc (cli -> buf_size , 1 ))) {
588- free_z (cli );
588+ cli_done (cli );
589589 return 0 ;
590590 }
591591 cli -> telnet_protocol = 1 ;
@@ -600,17 +600,29 @@ struct cli_def *cli_init() {
600600 cli_register_command (cli , 0 , "disable" , cli_disable , PRIVILEGE_PRIVILEGED , MODE_EXEC , "Turn off privileged commands" );
601601
602602 c = cli_register_command (cli , 0 , "configure" , 0 , PRIVILEGE_PRIVILEGED , MODE_EXEC , "Enter configuration mode" );
603+ if (!c ) {
604+ cli_done (cli );
605+ return 0 ;
606+ }
603607 cli_register_command (cli , c , "terminal" , cli_int_configure_terminal , PRIVILEGE_PRIVILEGED , MODE_EXEC ,
604608 "Conlfigure from the terminal" );
605609
606610 // And now the built in filters
607611 c = cli_register_filter (cli , "begin" , cli_range_filter_init , cli_range_filter , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
608612 "Begin with lines that match" );
613+ if (!c ) {
614+ cli_done (cli );
615+ return 0 ;
616+ }
609617 cli_register_optarg (c , "range_start" , CLI_CMD_ARGUMENT | CLI_CMD_REMAINDER_OF_LINE , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
610618 "Begin showing lines that match" , NULL , NULL , NULL );
611619
612620 c = cli_register_filter (cli , "between" , cli_range_filter_init , cli_range_filter , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
613621 "Between lines that match" );
622+ if (!c ) {
623+ cli_done (cli );
624+ return 0 ;
625+ }
614626 cli_register_optarg (c , "range_start" , CLI_CMD_ARGUMENT , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
615627 "Begin showing lines that match" , NULL , NULL , NULL );
616628 cli_register_optarg (c , "range_end" , CLI_CMD_ARGUMENT | CLI_CMD_REMAINDER_OF_LINE , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
@@ -621,23 +633,39 @@ struct cli_def *cli_init() {
621633
622634 c = cli_register_filter (cli , "exclude" , cli_match_filter_init , cli_match_filter , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
623635 "Exclude lines that match" );
636+ if (!c ) {
637+ cli_done (cli );
638+ return 0 ;
639+ }
624640 cli_register_optarg (c , "search_pattern" , CLI_CMD_ARGUMENT | CLI_CMD_REMAINDER_OF_LINE , PRIVILEGE_UNPRIVILEGED ,
625641 MODE_ANY , "Search pattern" , NULL , NULL , NULL );
626642
627643 c = cli_register_filter (cli , "include" , cli_match_filter_init , cli_match_filter , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
628644 "Include lines that match" );
645+ if (!c ) {
646+ cli_done (cli );
647+ return 0 ;
648+ }
629649 cli_register_optarg (c , "search_pattern" , CLI_CMD_ARGUMENT | CLI_CMD_REMAINDER_OF_LINE , PRIVILEGE_UNPRIVILEGED ,
630650 MODE_ANY , "Search pattern" , NULL , NULL , NULL );
631651
632652 c = cli_register_filter (cli , "grep" , cli_match_filter_init , cli_match_filter , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
633653 "Include lines that match regex (options: -v, -i, -e)" );
654+ if (!c ) {
655+ cli_done (cli );
656+ return 0 ;
657+ }
634658 cli_register_optarg (c , "search_flags" , CLI_CMD_HYPHENATED_OPTION , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
635659 "Search flags (-[ivx]" , NULL , cli_search_flags_validator , NULL );
636660 cli_register_optarg (c , "search_pattern" , CLI_CMD_ARGUMENT | CLI_CMD_REMAINDER_OF_LINE , PRIVILEGE_UNPRIVILEGED ,
637661 MODE_ANY , "Search pattern" , NULL , NULL , NULL );
638662
639663 c = cli_register_filter (cli , "egrep" , cli_match_filter_init , cli_match_filter , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
640664 "Include lines that match extended regex" );
665+ if (!c ) {
666+ cli_done (cli );
667+ return 0 ;
668+ }
641669 cli_register_optarg (c , "search_flags" , CLI_CMD_HYPHENATED_OPTION , PRIVILEGE_UNPRIVILEGED , MODE_ANY ,
642670 "Search flags (-[ivx]" , NULL , cli_search_flags_validator , NULL );
643671 cli_register_optarg (c , "search_pattern" , CLI_CMD_ARGUMENT | CLI_CMD_REMAINDER_OF_LINE , PRIVILEGE_UNPRIVILEGED ,
0 commit comments