El 16 de julio de 2019 18:47:11 CEST, Phil Sutter <p...@nwl.cc> escribió:
>Hi Pablo,
>
>On Tue, Jul 16, 2019 at 01:51:20PM +0200, Pablo Neira Ayuso wrote:
>[...]
>> diff --git a/src/evaluate.c b/src/evaluate.c
>> index f95f42e1067a..cd566e856a11 100644
>> --- a/src/evaluate.c
>> +++ b/src/evaluate.c
>> @@ -1984,17 +1984,9 @@ static int stmt_evaluate_verdict(struct
>eval_ctx *ctx, struct stmt *stmt)
>>      case EXPR_VERDICT:
>>              if (stmt->expr->verdict != NFT_CONTINUE)
>>                      stmt->flags |= STMT_F_TERMINAL;
>> -            if (stmt->expr->chain != NULL) {
>> -                    if (expr_evaluate(ctx, &stmt->expr->chain) < 0)
>> -                            return -1;
>> -                    if ((stmt->expr->chain->etype != EXPR_SYMBOL &&
>> -                        stmt->expr->chain->etype != EXPR_VALUE) ||
>> -                        stmt->expr->chain->symtype != SYMBOL_VALUE) {
>> -                            return stmt_error(ctx, stmt,
>> -                                              "invalid verdict chain 
>> expression %s\n",
>> -                                              expr_name(stmt->expr->chain));
>> -                    }
>> -            }
>
>According to my logs, this bit was added by Fernando to cover for
>invalid variable values[1]. So I fear we can't just drop this check.
>
>Cheers, Phil
>
>[1] I didn't check with current sources, but back then the following
>    variable contents were problematic:
>
>    * define foo = @set1 (a set named 'set1' must exist)
>    * define foo = { 1024 }
>    * define foo = *

Yes I am looking to the report and why current version fails when the jump is 
to a non-base chain because I tested that some months ago.

I will catch up with more details in a few hours. Sorry for the inconveniences.

Reply via email to