Re: [PATCH] selinux:Delete selinux_xfrm_policy_lookup() useless argument

From: Casey Schaufler
Date: Thu Apr 08 2021 - 12:18:14 EST


On 4/8/2021 1:49 AM, Zhongjun Tan wrote:
> From: Zhongjun Tan <tanzhongjun@xxxxxxxxxx>
>
> Delete selinux selinux_xfrm_policy_lookup() useless argument.
>
> Signed-off-by: Zhongjun Tan <tanzhongjun@xxxxxxxxxx>
> ---
> include/linux/lsm_hook_defs.h | 3 +--
> include/linux/security.h | 4 ++--
> net/xfrm/xfrm_policy.c | 6 ++----
> security/security.c | 4 ++--
> security/selinux/include/xfrm.h | 2 +-
> security/selinux/xfrm.c | 2 +-
> 6 files changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h
> index 04c0179..2adeea4 100644
> --- a/include/linux/lsm_hook_defs.h
> +++ b/include/linux/lsm_hook_defs.h
> @@ -358,8 +358,7 @@
> struct xfrm_sec_ctx *polsec, u32 secid)
> LSM_HOOK(void, LSM_RET_VOID, xfrm_state_free_security, struct xfrm_state *x)
> LSM_HOOK(int, 0, xfrm_state_delete_security, struct xfrm_state *x)
> -LSM_HOOK(int, 0, xfrm_policy_lookup, struct xfrm_sec_ctx *ctx, u32 fl_secid,
> - u8 dir)
> +LSM_HOOK(int, 0, xfrm_policy_lookup, struct xfrm_sec_ctx *ctx, u32 fl_secid)
> LSM_HOOK(int, 1, xfrm_state_pol_flow_match, struct xfrm_state *x,
> struct xfrm_policy *xp, const struct flowi_common *flic)
> LSM_HOOK(int, 0, xfrm_decode_session, struct sk_buff *skb, u32 *secid,

Please update the descriptive comment at the top of the file.

> diff --git a/include/linux/security.h b/include/linux/security.h
> index 06f7c50..24eda04 100644
> --- a/include/linux/security.h
> +++ b/include/linux/security.h
> @@ -1681,7 +1681,7 @@ int security_xfrm_state_alloc_acquire(struct xfrm_state *x,
> struct xfrm_sec_ctx *polsec, u32 secid);
> int security_xfrm_state_delete(struct xfrm_state *x);
> void security_xfrm_state_free(struct xfrm_state *x);
> -int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir);
> +int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid);
> int security_xfrm_state_pol_flow_match(struct xfrm_state *x,
> struct xfrm_policy *xp,
> const struct flowi_common *flic);
> @@ -1732,7 +1732,7 @@ static inline int security_xfrm_state_delete(struct xfrm_state *x)
> return 0;
> }
>
> -static inline int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir)
> +static inline int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid)
> {
> return 0;
> }
> diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
> index 156347f..d5d934e 100644
> --- a/net/xfrm/xfrm_policy.c
> +++ b/net/xfrm/xfrm_policy.c
> @@ -1902,8 +1902,7 @@ static int xfrm_policy_match(const struct xfrm_policy *pol,
>
> match = xfrm_selector_match(sel, fl, family);
> if (match)
> - ret = security_xfrm_policy_lookup(pol->security, fl->flowi_secid,
> - dir);
> + ret = security_xfrm_policy_lookup(pol->security, fl->flowi_secid);
> return ret;
> }
>
> @@ -2181,8 +2180,7 @@ static struct xfrm_policy *xfrm_sk_policy_lookup(const struct sock *sk, int dir,
> goto out;
> }
> err = security_xfrm_policy_lookup(pol->security,
> - fl->flowi_secid,
> - dir);
> + fl->flowi_secid);
> if (!err) {
> if (!xfrm_pol_hold_rcu(pol))
> goto again;
> diff --git a/security/security.c b/security/security.c
> index b38155b..0c1c979 100644
> --- a/security/security.c
> +++ b/security/security.c
> @@ -2466,9 +2466,9 @@ void security_xfrm_state_free(struct xfrm_state *x)
> call_void_hook(xfrm_state_free_security, x);
> }
>
> -int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir)
> +int security_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid)
> {
> - return call_int_hook(xfrm_policy_lookup, 0, ctx, fl_secid, dir);
> + return call_int_hook(xfrm_policy_lookup, 0, ctx, fl_secid);
> }
>
> int security_xfrm_state_pol_flow_match(struct xfrm_state *x,
> diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
> index 0a6f34a..7415940 100644
> --- a/security/selinux/include/xfrm.h
> +++ b/security/selinux/include/xfrm.h
> @@ -23,7 +23,7 @@ int selinux_xfrm_state_alloc_acquire(struct xfrm_state *x,
> struct xfrm_sec_ctx *polsec, u32 secid);
> void selinux_xfrm_state_free(struct xfrm_state *x);
> int selinux_xfrm_state_delete(struct xfrm_state *x);
> -int selinux_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir);
> +int selinux_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid);
> int selinux_xfrm_state_pol_flow_match(struct xfrm_state *x,
> struct xfrm_policy *xp,
> const struct flowi_common *flic);
> diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c
> index 634f3db..be83e5c 100644
> --- a/security/selinux/xfrm.c
> +++ b/security/selinux/xfrm.c
> @@ -150,7 +150,7 @@ static int selinux_xfrm_delete(struct xfrm_sec_ctx *ctx)
> * LSM hook implementation that authorizes that a flow can use a xfrm policy
> * rule.
> */
> -int selinux_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid, u8 dir)
> +int selinux_xfrm_policy_lookup(struct xfrm_sec_ctx *ctx, u32 fl_secid)
> {
> int rc;
>