Re: [PATCH nft] src: fix always-true assertions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 26, 2022 at 12:29:35PM +0200, Florian Westphal wrote:
> assert(1) is a no-op, this should be assert(0). Use BUG() instead.
> Add missing CATCHALL to avoid BUG().

LGTM.

So this is fixing a bug with catch-all element, correct?

> Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
> ---
>  src/evaluate.c  | 2 +-
>  src/intervals.c | 5 +++--
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/src/evaluate.c b/src/evaluate.c
> index b5f74d2f5051..1447a4c28aee 100644
> --- a/src/evaluate.c
> +++ b/src/evaluate.c
> @@ -1499,7 +1499,7 @@ static int interval_set_eval(struct eval_ctx *ctx, struct set *set,
>  	case CMD_GET:
>  		break;
>  	default:
> -		assert(1);
> +		BUG("unhandled op %d\n", ctx->cmd->op);
>  		break;
>  	}
>  
> diff --git a/src/intervals.c b/src/intervals.c
> index a74238525d8d..85ec59eda36a 100644
> --- a/src/intervals.c
> +++ b/src/intervals.c
> @@ -20,6 +20,7 @@ static void setelem_expr_to_range(struct expr *expr)
>  	assert(expr->etype == EXPR_SET_ELEM);
>  
>  	switch (expr->key->etype) {
> +	case EXPR_SET_ELEM_CATCHALL:
>  	case EXPR_RANGE:
>  		break;
>  	case EXPR_PREFIX:
> @@ -53,7 +54,7 @@ static void setelem_expr_to_range(struct expr *expr)
>  		expr->key = key;
>  		break;
>  	default:
> -		assert(1);
> +		BUG("unhandled key type %d\n", expr->key->etype);
>  	}
>  }
>  
> @@ -185,7 +186,7 @@ static struct expr *interval_expr_key(struct expr *i)
>  		elem = i;
>  		break;
>  	default:
> -		assert(1);
> +		BUG("unhandled expression type %d\n", i->etype);
>  		return NULL;
>  	}
>  
> -- 
> 2.35.1
> 



[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux