sreg, left);
break;
default:
- BUG("invalid bitwise operation %u\n", op);
+ return netlink_error(ctx, loc,
+ "Invalid bitwise operation %u", op);
}
dreg = netlink_parse_register(nle, NFTNL_EXPR_BITWISE_DREG);
const struct location *loc,
const struct nftnl_expr *nle)
{
+ uint32_t opval = nftnl_expr_get_u32(nle, NFTNL_EXPR_BYTEORDER_OP);
enum nft_registers sreg, dreg;
struct expr *expr, *arg;
enum ops op;
"Byteorder expression has no left "
"hand side");
- switch (nftnl_expr_get_u32(nle, NFTNL_EXPR_BYTEORDER_OP)) {
+ switch (opval) {
case NFT_BYTEORDER_NTOH:
op = OP_NTOH;
break;
op = OP_HTON;
break;
default:
- BUG("invalid byteorder operation %u\n",
- nftnl_expr_get_u32(nle, NFTNL_EXPR_BYTEORDER_OP));
+ expr_free(arg);
+ return netlink_error(ctx, loc,
+ "Invalid byteorder operation %u", opval);
}
expr = unary_expr_alloc(loc, op, arg);