diff options
-rw-r--r-- | src/netlink_delinearize.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index 2637f4ba..256552b5 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -108,6 +108,7 @@ static struct expr *netlink_parse_concat_expr(struct netlink_parse_ctx *ctx, unsigned int len) { struct expr *concat, *expr; + unsigned int consumed; concat = concat_expr_alloc(loc); while (len > 0) { @@ -119,7 +120,9 @@ static struct expr *netlink_parse_concat_expr(struct netlink_parse_ctx *ctx, } compound_expr_add(concat, expr); - len -= netlink_padded_len(expr->len); + consumed = netlink_padded_len(expr->len); + assert(consumed > 0); + len -= consumed; reg += netlink_register_space(expr->len); } return concat; |