From: Patrick McHardy Date: Sun, 9 Dec 2012 13:55:03 +0000 (+0100) Subject: netlink: fix endless loop on 64 bit when parsing binops X-Git-Tag: v0.099~147 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a64c860314779d95dc20834b5e8b314bfb9bac8e;p=thirdparty%2Fnftables.git netlink: fix endless loop on 64 bit when parsing binops mpz_scan1() returns ULONG_MAX when no more bits are found. Due to assignment to an unsigned int, this value was truncated on 64 bit and the loop never terminated. Signed-off-by: Patrick McHardy --- diff --git a/src/netlink_delinearize.c b/src/netlink_delinearize.c index d0ab335b..4ecf4f57 100644 --- a/src/netlink_delinearize.c +++ b/src/netlink_delinearize.c @@ -555,7 +555,7 @@ static void expr_postprocess(struct rule_pp_ctx *ctx, struct stmt *stmt, struct expr **exprp) { struct expr *expr = *exprp, *i; - unsigned int n; + unsigned long n; //pr_debug("%s len %u\n", expr->ops->name, expr->len);