Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
477c6086
Commit
477c6086
authored
Feb 18, 2010
by
Patrick McHardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ebt_config_compat_v4' of
git://git.breakpoint.cc/fw/nf-next-2.6
parents
6457d26b
6e705f56
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1132 additions
and
127 deletions
+1132
-127
net/bridge/netfilter/ebt_limit.c
net/bridge/netfilter/ebt_limit.c
+16
-0
net/bridge/netfilter/ebt_mark.c
net/bridge/netfilter/ebt_mark.c
+31
-0
net/bridge/netfilter/ebt_mark_m.c
net/bridge/netfilter/ebt_mark_m.c
+37
-0
net/bridge/netfilter/ebtables.c
net/bridge/netfilter/ebtables.c
+1048
-127
No files found.
net/bridge/netfilter/ebt_limit.c
View file @
477c6086
...
...
@@ -84,6 +84,19 @@ static bool ebt_limit_mt_check(const struct xt_mtchk_param *par)
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
=
{
.
name
=
"limit"
,
.
revision
=
0
,
...
...
@@ -91,6 +104,9 @@ static struct xt_match ebt_limit_mt_reg __read_mostly = {
.
match
=
ebt_limit_mt
,
.
checkentry
=
ebt_limit_mt_check
,
.
matchsize
=
sizeof
(
struct
ebt_limit_info
),
#ifdef CONFIG_COMPAT
.
compatsize
=
sizeof
(
struct
ebt_compat_limit_info
),
#endif
.
me
=
THIS_MODULE
,
};
...
...
net/bridge/netfilter/ebt_mark.c
View file @
477c6086
...
...
@@ -52,6 +52,32 @@ static bool ebt_mark_tg_check(const struct xt_tgchk_param *par)
return
false
;
return
true
;
}
#ifdef CONFIG_COMPAT
struct
compat_ebt_mark_t_info
{
compat_ulong_t
mark
;
compat_uint_t
target
;
};
static
void
mark_tg_compat_from_user
(
void
*
dst
,
const
void
*
src
)
{
const
struct
compat_ebt_mark_t_info
*
user
=
src
;
struct
ebt_mark_t_info
*
kern
=
dst
;
kern
->
mark
=
user
->
mark
;
kern
->
target
=
user
->
target
;
}
static
int
mark_tg_compat_to_user
(
void
__user
*
dst
,
const
void
*
src
)
{
struct
compat_ebt_mark_t_info
__user
*
user
=
dst
;
const
struct
ebt_mark_t_info
*
kern
=
src
;
if
(
put_user
(
kern
->
mark
,
&
user
->
mark
)
||
put_user
(
kern
->
target
,
&
user
->
target
))
return
-
EFAULT
;
return
0
;
}
#endif
static
struct
xt_target
ebt_mark_tg_reg
__read_mostly
=
{
.
name
=
"mark"
,
...
...
@@ -60,6 +86,11 @@ static struct xt_target ebt_mark_tg_reg __read_mostly = {
.
target
=
ebt_mark_tg
,
.
checkentry
=
ebt_mark_tg_check
,
.
targetsize
=
sizeof
(
struct
ebt_mark_t_info
),
#ifdef CONFIG_COMPAT
.
compatsize
=
sizeof
(
struct
compat_ebt_mark_t_info
),
.
compat_from_user
=
mark_tg_compat_from_user
,
.
compat_to_user
=
mark_tg_compat_to_user
,
#endif
.
me
=
THIS_MODULE
,
};
...
...
net/bridge/netfilter/ebt_mark_m.c
View file @
477c6086
...
...
@@ -35,6 +35,38 @@ static bool ebt_mark_mt_check(const struct xt_mtchk_param *par)
return
true
;
}
#ifdef CONFIG_COMPAT
struct
compat_ebt_mark_m_info
{
compat_ulong_t
mark
,
mask
;
uint8_t
invert
,
bitmask
;
};
static
void
mark_mt_compat_from_user
(
void
*
dst
,
const
void
*
src
)
{
const
struct
compat_ebt_mark_m_info
*
user
=
src
;
struct
ebt_mark_m_info
*
kern
=
dst
;
kern
->
mark
=
user
->
mark
;
kern
->
mask
=
user
->
mask
;
kern
->
invert
=
user
->
invert
;
kern
->
bitmask
=
user
->
bitmask
;
}
static
int
mark_mt_compat_to_user
(
void
__user
*
dst
,
const
void
*
src
)
{
struct
compat_ebt_mark_m_info
__user
*
user
=
dst
;
const
struct
ebt_mark_m_info
*
kern
=
src
;
if
(
put_user
(
kern
->
mark
,
&
user
->
mark
)
||
put_user
(
kern
->
mask
,
&
user
->
mask
)
||
put_user
(
kern
->
invert
,
&
user
->
invert
)
||
put_user
(
kern
->
bitmask
,
&
user
->
bitmask
))
return
-
EFAULT
;
return
0
;
}
#endif
static
struct
xt_match
ebt_mark_mt_reg
__read_mostly
=
{
.
name
=
"mark_m"
,
.
revision
=
0
,
...
...
@@ -42,6 +74,11 @@ static struct xt_match ebt_mark_mt_reg __read_mostly = {
.
match
=
ebt_mark_mt
,
.
checkentry
=
ebt_mark_mt_check
,
.
matchsize
=
sizeof
(
struct
ebt_mark_m_info
),
#ifdef CONFIG_COMPAT
.
compatsize
=
sizeof
(
struct
compat_ebt_mark_m_info
),
.
compat_from_user
=
mark_mt_compat_from_user
,
.
compat_to_user
=
mark_mt_compat_to_user
,
#endif
.
me
=
THIS_MODULE
,
};
...
...
net/bridge/netfilter/ebtables.c
View file @
477c6086
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment