]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
libxt_conntrack: fix assignment to wrong member
authorJan Engelhardt <jengelh@medozas.de>
Thu, 12 May 2011 23:12:05 +0000 (01:12 +0200)
committerJan Engelhardt <jengelh@medozas.de>
Fri, 13 May 2011 00:00:01 +0000 (02:00 +0200)
Of course the range end ought to be set, not doing the start value
twice.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
extensions/libxt_conntrack.c

index 6d16ccf5a01e2a6ebe12e12846468c1360247cde..0262b0190404175cbfc1cf3b0f7884c6b6a66aa2 100644 (file)
@@ -480,32 +480,28 @@ static void conntrack_mt_parse(struct xt_option_call *cb, uint8_t rev)
                break;
        case O_CTORIGSRCPORT:
                info->origsrc_port = cb->val.port_range[0];
-               info->origsrc_port = (cb->nvals == 2) ? cb->val.port_range[1] :
-                                    cb->val.port_range[0];
+               info->origsrc_port_high = cb->val.port_range[cb->nvals >= 2];
                info->match_flags |= XT_CONNTRACK_ORIGSRC_PORT;
                if (cb->invert)
                        info->invert_flags |= XT_CONNTRACK_ORIGSRC_PORT;
                break;
        case O_CTORIGDSTPORT:
                info->origdst_port = cb->val.port_range[0];
-               info->origdst_port = (cb->nvals == 2) ? cb->val.port_range[1] :
-                                    cb->val.port_range[0];
+               info->origdst_port_high = cb->val.port_range[cb->nvals >= 2];
                info->match_flags |= XT_CONNTRACK_ORIGDST_PORT;
                if (cb->invert)
                        info->invert_flags |= XT_CONNTRACK_ORIGDST_PORT;
                break;
        case O_CTREPLSRCPORT:
                info->replsrc_port = cb->val.port_range[0];
-               info->replsrc_port = (cb->nvals == 2) ? cb->val.port_range[1] :
-                                    cb->val.port_range[0];
+               info->replsrc_port_high = cb->val.port_range[cb->nvals >= 2];
                info->match_flags |= XT_CONNTRACK_REPLSRC_PORT;
                if (cb->invert)
                        info->invert_flags |= XT_CONNTRACK_REPLSRC_PORT;
                break;
        case O_CTREPLDSTPORT:
                info->repldst_port = cb->val.port_range[0];
-               info->repldst_port = (cb->nvals == 2) ? cb->val.port_range[1] :
-                                    cb->val.port_range[0];
+               info->repldst_port_high = cb->val.port_range[cb->nvals >= 2];
                info->match_flags |= XT_CONNTRACK_REPLDST_PORT;
                if (cb->invert)
                        info->invert_flags |= XT_CONNTRACK_REPLDST_PORT;