summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/conntrack/compare.c6
-rw-r--r--src/expect/compare.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/src/conntrack/compare.c b/src/conntrack/compare.c
index e282a24..97c25cb 100644
--- a/src/conntrack/compare.c
+++ b/src/conntrack/compare.c
@@ -17,8 +17,12 @@ static int __cmp(int attr,
const struct nf_conntrack *ct2,
unsigned int flags))
{
- if (test_bit(attr, ct1->head.set) && test_bit(attr, ct2->head.set)) {
+ int a = test_bit(attr, ct1->head.set);
+ int b = test_bit(attr, ct2->head.set);
+ if (a && b) {
return cmp(ct1, ct2, flags);
+ } else if (!a && !b) {
+ return 1;
} else if (flags & NFCT_CMP_MASK &&
test_bit(attr, ct1->head.set)) {
return 0;
diff --git a/src/expect/compare.c b/src/expect/compare.c
index a524f4c..484d7b1 100644
--- a/src/expect/compare.c
+++ b/src/expect/compare.c
@@ -18,8 +18,13 @@ static int exp_cmp(int attr,
const struct nf_expect *exp2,
unsigned int flags))
{
- if (test_bit(attr, exp1->set) && test_bit(attr, exp2->set)) {
+ int a = test_bit(attr, exp1->set);
+ int b = test_bit(attr, exp2->set);
+
+ if (a && b) {
return cmp(exp1, exp2, flags);
+ } else if (!a && !b) {
+ return 1;
} else if (flags & NFCT_CMP_MASK &&
test_bit(attr, exp1->set)) {
return 0;