@@ -201,6 +201,7 @@ xt_osf_match_packet(const struct sk_buff *skb, struct xt_action_param *p)
unsigned char opts[MAX_IPOPTLEN];
const struct xt_osf_finger *kf;
const struct xt_osf_user_finger *f;
+ bool invert = info->flags & XT_OSF_INVERT;
if (!info)
return false;
@@ -349,7 +350,7 @@ xt_osf_match_packet(const struct sk_buff *skb, struct xt_action_param *p)
if (fcount)
fmatch = FMATCH_OK;
- return fmatch == FMATCH_OK;
+ return (fmatch == FMATCH_OK) ^ invert;
}
static struct xt_match xt_osf_match = {