Merge branch 'next' into for-linus
This commit is contained in:
@@ -474,8 +474,9 @@ __build_packet_message(struct nfulnl_instance *inst,
|
||||
if (skb->sk) {
|
||||
read_lock_bh(&skb->sk->sk_callback_lock);
|
||||
if (skb->sk->sk_socket && skb->sk->sk_socket->file) {
|
||||
__be32 uid = htonl(skb->sk->sk_socket->file->f_uid);
|
||||
__be32 gid = htonl(skb->sk->sk_socket->file->f_gid);
|
||||
struct file *file = skb->sk->sk_socket->file;
|
||||
__be32 uid = htonl(file->f_cred->fsuid);
|
||||
__be32 gid = htonl(file->f_cred->fsgid);
|
||||
/* need to unlock here since NLA_PUT may goto */
|
||||
read_unlock_bh(&skb->sk->sk_callback_lock);
|
||||
NLA_PUT_BE32(inst->skb, NFULA_UID, uid);
|
||||
|
@@ -34,12 +34,12 @@ owner_mt_v0(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return false;
|
||||
|
||||
if (info->match & IPT_OWNER_UID)
|
||||
if ((filp->f_uid != info->uid) ^
|
||||
if ((filp->f_cred->fsuid != info->uid) ^
|
||||
!!(info->invert & IPT_OWNER_UID))
|
||||
return false;
|
||||
|
||||
if (info->match & IPT_OWNER_GID)
|
||||
if ((filp->f_gid != info->gid) ^
|
||||
if ((filp->f_cred->fsgid != info->gid) ^
|
||||
!!(info->invert & IPT_OWNER_GID))
|
||||
return false;
|
||||
|
||||
@@ -60,12 +60,12 @@ owner_mt6_v0(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
return false;
|
||||
|
||||
if (info->match & IP6T_OWNER_UID)
|
||||
if ((filp->f_uid != info->uid) ^
|
||||
if ((filp->f_cred->fsuid != info->uid) ^
|
||||
!!(info->invert & IP6T_OWNER_UID))
|
||||
return false;
|
||||
|
||||
if (info->match & IP6T_OWNER_GID)
|
||||
if ((filp->f_gid != info->gid) ^
|
||||
if ((filp->f_cred->fsgid != info->gid) ^
|
||||
!!(info->invert & IP6T_OWNER_GID))
|
||||
return false;
|
||||
|
||||
@@ -93,14 +93,14 @@ owner_mt(const struct sk_buff *skb, const struct xt_match_param *par)
|
||||
(XT_OWNER_UID | XT_OWNER_GID)) == 0;
|
||||
|
||||
if (info->match & XT_OWNER_UID)
|
||||
if ((filp->f_uid >= info->uid_min &&
|
||||
filp->f_uid <= info->uid_max) ^
|
||||
if ((filp->f_cred->fsuid >= info->uid_min &&
|
||||
filp->f_cred->fsuid <= info->uid_max) ^
|
||||
!(info->invert & XT_OWNER_UID))
|
||||
return false;
|
||||
|
||||
if (info->match & XT_OWNER_GID)
|
||||
if ((filp->f_gid >= info->gid_min &&
|
||||
filp->f_gid <= info->gid_max) ^
|
||||
if ((filp->f_cred->fsgid >= info->gid_min &&
|
||||
filp->f_cred->fsgid <= info->gid_max) ^
|
||||
!(info->invert & XT_OWNER_GID))
|
||||
return false;
|
||||
|
||||
|
Reference in New Issue
Block a user