mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
[NETFILTER]: xt_owner: allow matching UID/GID ranges
Add support for ranges to the new revision. This doesn't affect compatibility since the new revision was not released yet. Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
37c08387fc
commit
edc26f7aaa
@ -8,8 +8,8 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct xt_owner_match_info {
|
struct xt_owner_match_info {
|
||||||
u_int32_t uid;
|
u_int32_t uid_min, uid_max;
|
||||||
u_int32_t gid;
|
u_int32_t gid_min, gid_max;
|
||||||
u_int8_t match, invert;
|
u_int8_t match, invert;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
*
|
*
|
||||||
* (C) 2000 Marc Boucher <marc@mbsi.ca>
|
* (C) 2000 Marc Boucher <marc@mbsi.ca>
|
||||||
*
|
*
|
||||||
* Copyright © CC Computer Consultants GmbH, 2007
|
* Copyright © CC Computer Consultants GmbH, 2007 - 2008
|
||||||
* Contact: <jengelh@computergmbh.de>
|
* <jengelh@computergmbh.de>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
@ -102,13 +102,15 @@ owner_mt(const struct sk_buff *skb, const struct net_device *in,
|
|||||||
(XT_OWNER_UID | XT_OWNER_GID)) == 0;
|
(XT_OWNER_UID | XT_OWNER_GID)) == 0;
|
||||||
|
|
||||||
if (info->match & XT_OWNER_UID)
|
if (info->match & XT_OWNER_UID)
|
||||||
if ((filp->f_uid != info->uid) ^
|
if ((filp->f_uid >= info->uid_min &&
|
||||||
!!(info->invert & XT_OWNER_UID))
|
filp->f_uid <= info->uid_max) ^
|
||||||
|
!(info->invert & XT_OWNER_UID))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (info->match & XT_OWNER_GID)
|
if (info->match & XT_OWNER_GID)
|
||||||
if ((filp->f_gid != info->gid) ^
|
if ((filp->f_gid >= info->gid_min &&
|
||||||
!!(info->invert & XT_OWNER_GID))
|
filp->f_gid <= info->gid_max) ^
|
||||||
|
!(info->invert & XT_OWNER_GID))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user