netlink_delinearize is prepared to deal with malformed expressions from
the kernel that it doesn't understand. However since expressions are now
cloned unconditionally by netlink_get_register(), we crash before such
errors can be detected for invalid inputs.
Fix by only cloning non-NULL expressions.
Signed-off-by: Patrick McHardy <kaber@trash.net>
}
expr = ctx->registers[reg];
- return expr_clone(expr);
+ if (expr != NULL)
+ expr = expr_clone(expr);
+
+ return expr;
}
static void netlink_release_registers(struct netlink_parse_ctx *ctx)