netfilter: ebt_limit: add CONFIG_COMPAT support
ebt_limit structure is larger on 64 bit systems due to "long" type used in the (kernel-only) data section. Setting .compatsize is enough in this case, these values have no meaning in userspace. Signed-off-by: Florian Westphal <fwestphal@astaro.com>
This commit is contained in:
@@ -84,6 +84,19 @@ static bool ebt_limit_mt_check(const struct xt_mtchk_param *par)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CONFIG_COMPAT
|
||||||
|
/*
|
||||||
|
* no conversion function needed --
|
||||||
|
* only avg/burst have meaningful values in userspace.
|
||||||
|
*/
|
||||||
|
struct ebt_compat_limit_info {
|
||||||
|
compat_uint_t avg, burst;
|
||||||
|
compat_ulong_t prev;
|
||||||
|
compat_uint_t credit, credit_cap, cost;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct xt_match ebt_limit_mt_reg __read_mostly = {
|
static struct xt_match ebt_limit_mt_reg __read_mostly = {
|
||||||
.name = "limit",
|
.name = "limit",
|
||||||
.revision = 0,
|
.revision = 0,
|
||||||
@@ -91,6 +104,9 @@ static struct xt_match ebt_limit_mt_reg __read_mostly = {
|
|||||||
.match = ebt_limit_mt,
|
.match = ebt_limit_mt,
|
||||||
.checkentry = ebt_limit_mt_check,
|
.checkentry = ebt_limit_mt_check,
|
||||||
.matchsize = sizeof(struct ebt_limit_info),
|
.matchsize = sizeof(struct ebt_limit_info),
|
||||||
|
#ifdef CONFIG_COMPAT
|
||||||
|
.compatsize = sizeof(struct ebt_compat_limit_info),
|
||||||
|
#endif
|
||||||
.me = THIS_MODULE,
|
.me = THIS_MODULE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user