mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-14 16:33:34 +00:00
closes issue #10777 -- by returning a null for the parse tree when there's really nothing there, and making sure we don't try to do checking on a null tree.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84239 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2123,8 +2123,8 @@ yyreduce:
|
|||||||
if (!(yyvsp[(5) - (6)].pval)) {
|
if (!(yyvsp[(5) - (6)].pval)) {
|
||||||
ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
|
ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
|
||||||
my_file, (yylsp[(4) - (6)]).first_line, (yylsp[(4) - (6)]).first_column, (yylsp[(4) - (6)]).last_column, (yyvsp[(3) - (6)].str) );
|
my_file, (yylsp[(4) - (6)]).first_line, (yylsp[(4) - (6)]).first_column, (yylsp[(4) - (6)]).last_column, (yyvsp[(3) - (6)].str) );
|
||||||
|
(yyval.pval) = 0;
|
||||||
free((yyvsp[(3) - (6)].str));
|
free((yyvsp[(3) - (6)].str));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
|
(yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
|
||||||
(yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
|
(yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
|
||||||
|
@@ -204,8 +204,8 @@ context : opt_abstract KW_CONTEXT context_name LC elements RC {
|
|||||||
if (!$5) {
|
if (!$5) {
|
||||||
ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
|
ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
|
||||||
my_file, @4.first_line, @4.first_column, @4.last_column, $3 );
|
my_file, @4.first_line, @4.first_column, @4.last_column, $3 );
|
||||||
|
$$ = 0;
|
||||||
free($3);
|
free($3);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$$ = npval2(PV_CONTEXT, &@1, &@6);
|
$$ = npval2(PV_CONTEXT, &@1, &@6);
|
||||||
$$->u1.str = $3;
|
$$->u1.str = $3;
|
||||||
|
@@ -109,9 +109,9 @@ void destroy_pval_item(pval *item);
|
|||||||
int is_float(char *arg );
|
int is_float(char *arg );
|
||||||
int is_int(char *arg );
|
int is_int(char *arg );
|
||||||
int is_empty(char *arg);
|
int is_empty(char *arg);
|
||||||
static pval *current_db;
|
static pval *current_db=0;
|
||||||
static pval *current_context;
|
static pval *current_context=0;
|
||||||
static pval *current_extension;
|
static pval *current_extension=0;
|
||||||
|
|
||||||
static const char *match_context;
|
static const char *match_context;
|
||||||
static const char *match_exten;
|
static const char *match_exten;
|
||||||
@@ -2733,6 +2733,8 @@ static void ael2_semantic_check(pval *item, int *arg_errs, int *arg_warns, int *
|
|||||||
#endif
|
#endif
|
||||||
struct argapp *apps=0;
|
struct argapp *apps=0;
|
||||||
|
|
||||||
|
if (!item)
|
||||||
|
return; /* don't check an empty tree */
|
||||||
#ifdef AAL_ARGCHECK
|
#ifdef AAL_ARGCHECK
|
||||||
rfilename = alloca(10 + strlen(ast_config_AST_VAR_DIR));
|
rfilename = alloca(10 + strlen(ast_config_AST_VAR_DIR));
|
||||||
sprintf(rfilename, "%s/applist", ast_config_AST_VAR_DIR);
|
sprintf(rfilename, "%s/applist", ast_config_AST_VAR_DIR);
|
||||||
|
Reference in New Issue
Block a user