mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
netfilter: xtables: change xt_match.checkentry return type
Restore function signatures from bool to int so that we can report memory allocation failures or similar using -ENOMEM rather than always having to pass -EINVAL back. This semantic patch may not be too precise (checking for functions that use xt_mtchk_param rather than functions referenced by xt_match.checkentry), but reviewed, it produced the intended result. // <smpl> @@ type bool; identifier check, par; @@ -bool check +int check (struct xt_mtchk_param *par) { ... } // </smpl> Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
This commit is contained in:
parent
9f56731741
commit
b0f38452ff
@ -303,7 +303,7 @@ struct xt_match {
|
||||
const struct xt_match_param *);
|
||||
|
||||
/* Called when user tries to insert an entry of this type. */
|
||||
bool (*checkentry)(const struct xt_mtchk_param *);
|
||||
int (*checkentry)(const struct xt_mtchk_param *);
|
||||
|
||||
/* Called when entry of this type deleted. */
|
||||
void (*destroy)(const struct xt_mtdtor_param *);
|
||||
|
@ -36,7 +36,7 @@ ebt_802_3_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ebt_802_3_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_802_3_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_802_3_info *info = par->matchinfo;
|
||||
|
||||
|
@ -172,7 +172,7 @@ ebt_among_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ebt_among_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_among_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_among_info *info = par->matchinfo;
|
||||
const struct ebt_entry_match *em =
|
||||
|
@ -100,7 +100,7 @@ ebt_arp_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ebt_arp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_arp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_arp_info *info = par->matchinfo;
|
||||
const struct ebt_entry *e = par->entryinfo;
|
||||
|
@ -77,7 +77,7 @@ ebt_ip_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ebt_ip_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_ip_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_ip_info *info = par->matchinfo;
|
||||
const struct ebt_entry *e = par->entryinfo;
|
||||
|
@ -80,7 +80,7 @@ ebt_ip6_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ebt_ip6_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_ip6_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_entry *e = par->entryinfo;
|
||||
struct ebt_ip6_info *info = par->matchinfo;
|
||||
|
@ -65,7 +65,7 @@ user2credits(u_int32_t user)
|
||||
return (user * HZ * CREDITS_PER_JIFFY) / EBT_LIMIT_SCALE;
|
||||
}
|
||||
|
||||
static bool ebt_limit_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_limit_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct ebt_limit_info *info = par->matchinfo;
|
||||
|
||||
|
@ -22,7 +22,7 @@ ebt_mark_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ((skb->mark & info->mask) == info->mark) ^ info->invert;
|
||||
}
|
||||
|
||||
static bool ebt_mark_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_mark_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_mark_m_info *info = par->matchinfo;
|
||||
|
||||
|
@ -20,7 +20,7 @@ ebt_pkttype_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return (skb->pkt_type == info->pkt_type) ^ info->invert;
|
||||
}
|
||||
|
||||
static bool ebt_pkttype_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_pkttype_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_pkttype_info *info = par->matchinfo;
|
||||
|
||||
|
@ -153,7 +153,7 @@ ebt_stp_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ebt_stp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_stp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ebt_stp_info *info = par->matchinfo;
|
||||
const uint8_t bridge_ula[6] = {0x01, 0x80, 0xc2, 0x00, 0x00, 0x00};
|
||||
|
@ -79,7 +79,7 @@ ebt_vlan_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ebt_vlan_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ebt_vlan_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct ebt_vlan_info *info = par->matchinfo;
|
||||
const struct ebt_entry *e = par->entryinfo;
|
||||
|
@ -2176,7 +2176,7 @@ icmp_match(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
!!(icmpinfo->invflags&IPT_ICMP_INV));
|
||||
}
|
||||
|
||||
static bool icmp_checkentry(const struct xt_mtchk_param *par)
|
||||
static int icmp_checkentry(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ipt_icmp *icmpinfo = par->matchinfo;
|
||||
|
||||
|
@ -70,7 +70,7 @@ addrtype_mt_v1(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool addrtype_mt_checkentry_v1(const struct xt_mtchk_param *par)
|
||||
static int addrtype_mt_checkentry_v1(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct ipt_addrtype_info_v1 *info = par->matchinfo;
|
||||
|
||||
|
@ -55,7 +55,7 @@ static bool ah_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
!!(ahinfo->invflags & IPT_AH_INV_SPI));
|
||||
}
|
||||
|
||||
static bool ah_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ah_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ipt_ah *ahinfo = par->matchinfo;
|
||||
|
||||
|
@ -85,7 +85,7 @@ static bool ecn_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool ecn_mt_check(const struct xt_mtchk_param *par)
|
||||
static int ecn_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ipt_ecn_info *info = par->matchinfo;
|
||||
const struct ipt_ip *ip = par->entryinfo;
|
||||
|
@ -2209,7 +2209,7 @@ icmp6_match(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
}
|
||||
|
||||
/* Called when user tries to insert an entry of this type. */
|
||||
static bool icmp6_checkentry(const struct xt_mtchk_param *par)
|
||||
static int icmp6_checkentry(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_icmp *icmpinfo = par->matchinfo;
|
||||
|
||||
|
@ -87,7 +87,7 @@ static bool ah_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
!(ahinfo->hdrres && ah->reserved);
|
||||
}
|
||||
|
||||
static bool ah_mt6_check(const struct xt_mtchk_param *par)
|
||||
static int ah_mt6_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_ah *ahinfo = par->matchinfo;
|
||||
|
||||
|
@ -102,7 +102,7 @@ frag_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
(ntohs(fh->frag_off) & IP6_MF));
|
||||
}
|
||||
|
||||
static bool frag_mt6_check(const struct xt_mtchk_param *par)
|
||||
static int frag_mt6_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_frag *fraginfo = par->matchinfo;
|
||||
|
||||
|
@ -164,7 +164,7 @@ hbh_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool hbh_mt6_check(const struct xt_mtchk_param *par)
|
||||
static int hbh_mt6_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_opts *optsinfo = par->matchinfo;
|
||||
|
||||
|
@ -118,7 +118,7 @@ ipv6header_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
}
|
||||
}
|
||||
|
||||
static bool ipv6header_mt6_check(const struct xt_mtchk_param *par)
|
||||
static int ipv6header_mt6_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_ipv6header_info *info = par->matchinfo;
|
||||
|
||||
|
@ -62,7 +62,7 @@ static bool mh_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
!!(mhinfo->invflags & IP6T_MH_INV_TYPE));
|
||||
}
|
||||
|
||||
static bool mh_mt6_check(const struct xt_mtchk_param *par)
|
||||
static int mh_mt6_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_mh *mhinfo = par->matchinfo;
|
||||
|
||||
|
@ -183,7 +183,7 @@ static bool rt_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool rt_mt6_check(const struct xt_mtchk_param *par)
|
||||
static int rt_mt6_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_rt *rtinfo = par->matchinfo;
|
||||
|
||||
|
@ -132,7 +132,7 @@ xt_cluster_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
!!(info->flags & XT_CLUSTER_F_INV);
|
||||
}
|
||||
|
||||
static bool xt_cluster_mt_checkentry(const struct xt_mtchk_param *par)
|
||||
static int xt_cluster_mt_checkentry(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_cluster_match_info *info = par->matchinfo;
|
||||
|
||||
|
@ -93,7 +93,7 @@ connbytes_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return what >= sinfo->count.from;
|
||||
}
|
||||
|
||||
static bool connbytes_mt_check(const struct xt_mtchk_param *par)
|
||||
static int connbytes_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_connbytes_info *sinfo = par->matchinfo;
|
||||
|
||||
|
@ -216,7 +216,7 @@ connlimit_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool connlimit_mt_check(const struct xt_mtchk_param *par)
|
||||
static int connlimit_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_connlimit_info *info = par->matchinfo;
|
||||
unsigned int i;
|
||||
|
@ -103,7 +103,7 @@ connmark_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ((ct->mark & info->mask) == info->mark) ^ info->invert;
|
||||
}
|
||||
|
||||
static bool connmark_mt_check(const struct xt_mtchk_param *par)
|
||||
static int connmark_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
if (nf_ct_l3proto_try_module_get(par->family) < 0) {
|
||||
pr_info("cannot load conntrack support for proto=%u\n",
|
||||
|
@ -206,7 +206,7 @@ conntrack_mt_v2(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return conntrack_mt(skb, par, info->state_mask, info->status_mask);
|
||||
}
|
||||
|
||||
static bool conntrack_mt_check(const struct xt_mtchk_param *par)
|
||||
static int conntrack_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
if (nf_ct_l3proto_try_module_get(par->family) < 0) {
|
||||
pr_info("cannot load conntrack support for proto=%u\n",
|
||||
|
@ -123,7 +123,7 @@ dccp_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
XT_DCCP_OPTION, info->flags, info->invflags);
|
||||
}
|
||||
|
||||
static bool dccp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int dccp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_dccp_info *info = par->matchinfo;
|
||||
|
||||
|
@ -42,7 +42,7 @@ dscp_mt6(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return (dscp == info->dscp) ^ !!info->invert;
|
||||
}
|
||||
|
||||
static bool dscp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int dscp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_dscp_info *info = par->matchinfo;
|
||||
|
||||
|
@ -60,7 +60,7 @@ static bool esp_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
!!(espinfo->invflags & XT_ESP_INV_SPI));
|
||||
}
|
||||
|
||||
static bool esp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int esp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_esp *espinfo = par->matchinfo;
|
||||
|
||||
|
@ -671,7 +671,7 @@ hashlimit_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool hashlimit_mt_check_v0(const struct xt_mtchk_param *par)
|
||||
static int hashlimit_mt_check_v0(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct net *net = par->net;
|
||||
struct xt_hashlimit_info *r = par->matchinfo;
|
||||
@ -707,7 +707,7 @@ static bool hashlimit_mt_check_v0(const struct xt_mtchk_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool hashlimit_mt_check(const struct xt_mtchk_param *par)
|
||||
static int hashlimit_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct net *net = par->net;
|
||||
struct xt_hashlimit_mtinfo1 *info = par->matchinfo;
|
||||
|
@ -54,7 +54,7 @@ helper_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool helper_mt_check(const struct xt_mtchk_param *par)
|
||||
static int helper_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_helper_info *info = par->matchinfo;
|
||||
|
||||
|
@ -97,7 +97,7 @@ user2credits(u_int32_t user)
|
||||
return (user * HZ * CREDITS_PER_JIFFY) / XT_LIMIT_SCALE;
|
||||
}
|
||||
|
||||
static bool limit_mt_check(const struct xt_mtchk_param *par)
|
||||
static int limit_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_rateinfo *r = par->matchinfo;
|
||||
struct xt_limit_priv *priv;
|
||||
|
@ -152,7 +152,7 @@ check(u_int16_t proto,
|
||||
&& count <= XT_MULTI_PORTS;
|
||||
}
|
||||
|
||||
static bool multiport_mt_check_v0(const struct xt_mtchk_param *par)
|
||||
static int multiport_mt_check_v0(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ipt_ip *ip = par->entryinfo;
|
||||
const struct xt_multiport *multiinfo = par->matchinfo;
|
||||
@ -161,7 +161,7 @@ static bool multiport_mt_check_v0(const struct xt_mtchk_param *par)
|
||||
multiinfo->count);
|
||||
}
|
||||
|
||||
static bool multiport_mt_check(const struct xt_mtchk_param *par)
|
||||
static int multiport_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ipt_ip *ip = par->entryinfo;
|
||||
const struct xt_multiport_v1 *multiinfo = par->matchinfo;
|
||||
@ -170,7 +170,7 @@ static bool multiport_mt_check(const struct xt_mtchk_param *par)
|
||||
multiinfo->count);
|
||||
}
|
||||
|
||||
static bool multiport_mt6_check_v0(const struct xt_mtchk_param *par)
|
||||
static int multiport_mt6_check_v0(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_ip6 *ip = par->entryinfo;
|
||||
const struct xt_multiport *multiinfo = par->matchinfo;
|
||||
@ -179,7 +179,7 @@ static bool multiport_mt6_check_v0(const struct xt_mtchk_param *par)
|
||||
multiinfo->count);
|
||||
}
|
||||
|
||||
static bool multiport_mt6_check(const struct xt_mtchk_param *par)
|
||||
static int multiport_mt6_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct ip6t_ip6 *ip = par->entryinfo;
|
||||
const struct xt_multiport_v1 *multiinfo = par->matchinfo;
|
||||
|
@ -83,7 +83,7 @@ match_outdev:
|
||||
return (!!ret ^ !(info->invert & XT_PHYSDEV_OP_OUT));
|
||||
}
|
||||
|
||||
static bool physdev_mt_check(const struct xt_mtchk_param *par)
|
||||
static int physdev_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_physdev_info *info = par->matchinfo;
|
||||
|
||||
|
@ -128,7 +128,7 @@ policy_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool policy_mt_check(const struct xt_mtchk_param *par)
|
||||
static int policy_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_policy_info *info = par->matchinfo;
|
||||
|
||||
|
@ -43,7 +43,7 @@ quota_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool quota_mt_check(const struct xt_mtchk_param *par)
|
||||
static int quota_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_quota_info *q = par->matchinfo;
|
||||
|
||||
|
@ -74,7 +74,7 @@ xt_rateest_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool xt_rateest_mt_checkentry(const struct xt_mtchk_param *par)
|
||||
static int xt_rateest_mt_checkentry(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_rateest_match_info *info = par->matchinfo;
|
||||
struct xt_rateest *est1, *est2;
|
||||
|
@ -305,7 +305,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool recent_mt_check(const struct xt_mtchk_param *par)
|
||||
static int recent_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct recent_net *recent_net = recent_pernet(par->net);
|
||||
const struct xt_recent_mtinfo *info = par->matchinfo;
|
||||
|
@ -144,7 +144,7 @@ sctp_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
XT_SCTP_CHUNK_TYPES, info->flags, info->invflags);
|
||||
}
|
||||
|
||||
static bool sctp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int sctp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_sctp_info *info = par->matchinfo;
|
||||
|
||||
|
@ -37,7 +37,7 @@ state_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return (sinfo->statemask & statebit);
|
||||
}
|
||||
|
||||
static bool state_mt_check(const struct xt_mtchk_param *par)
|
||||
static int state_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
if (nf_ct_l3proto_try_module_get(par->family) < 0) {
|
||||
pr_info("cannot load conntrack support for proto=%u\n",
|
||||
|
@ -52,7 +52,7 @@ statistic_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool statistic_mt_check(const struct xt_mtchk_param *par)
|
||||
static int statistic_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_statistic_info *info = par->matchinfo;
|
||||
|
||||
|
@ -40,7 +40,7 @@ string_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
|
||||
#define STRING_TEXT_PRIV(m) ((struct xt_string_info *)(m))
|
||||
|
||||
static bool string_mt_check(const struct xt_mtchk_param *par)
|
||||
static int string_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
struct xt_string_info *conf = par->matchinfo;
|
||||
struct ts_config *ts_conf;
|
||||
|
@ -120,7 +120,7 @@ static bool tcp_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool tcp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int tcp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_tcp *tcpinfo = par->matchinfo;
|
||||
|
||||
@ -155,7 +155,7 @@ static bool udp_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
!!(udpinfo->invflags & XT_UDP_INV_DSTPT));
|
||||
}
|
||||
|
||||
static bool udp_mt_check(const struct xt_mtchk_param *par)
|
||||
static int udp_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_udp *udpinfo = par->matchinfo;
|
||||
|
||||
|
@ -217,7 +217,7 @@ time_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool time_mt_check(const struct xt_mtchk_param *par)
|
||||
static int time_mt_check(const struct xt_mtchk_param *par)
|
||||
{
|
||||
const struct xt_time_info *info = par->matchinfo;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user