Skip to content

Commit

Permalink
Merge tag 'caps-pr-20250327' of git://git.kernel.org/pub/scm/linux/ke…
Browse files Browse the repository at this point in the history
…rnel/git/sergeh/linux

Pull capabilities update from Serge Hallyn:
 "This contains just one patch that removes a helper function whose last
  user (smack) stopped using it in 2018"

* tag 'caps-pr-20250327' of git://git.kernel.org/pub/scm/linux/kernel/git/sergeh/linux:
  capability: Remove unused has_capability
  • Loading branch information
Linus Torvalds committed Mar 28, 2025
2 parents a2d4f47 + 4ae89b1 commit 78fb88e
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 25 deletions.
5 changes: 0 additions & 5 deletions include/linux/capability.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ static inline kernel_cap_t cap_raise_nfsd_set(const kernel_cap_t a,
}

#ifdef CONFIG_MULTIUSER
extern bool has_capability(struct task_struct *t, int cap);
extern bool has_ns_capability(struct task_struct *t,
struct user_namespace *ns, int cap);
extern bool has_capability_noaudit(struct task_struct *t, int cap);
Expand All @@ -150,10 +149,6 @@ extern bool ns_capable(struct user_namespace *ns, int cap);
extern bool ns_capable_noaudit(struct user_namespace *ns, int cap);
extern bool ns_capable_setid(struct user_namespace *ns, int cap);
#else
static inline bool has_capability(struct task_struct *t, int cap)
{
return true;
}
static inline bool has_ns_capability(struct task_struct *t,
struct user_namespace *ns, int cap)
{
Expand Down
16 changes: 0 additions & 16 deletions kernel/capability.c
Original file line number Diff line number Diff line change
Expand Up @@ -285,22 +285,6 @@ bool has_ns_capability(struct task_struct *t,
return (ret == 0);
}

/**
* has_capability - Does a task have a capability in init_user_ns
* @t: The task in question
* @cap: The capability to be tested for
*
* Return true if the specified task has the given superior capability
* currently in effect to the initial user namespace, false if not.
*
* Note that this does not set PF_SUPERPRIV on the task.
*/
bool has_capability(struct task_struct *t, int cap)
{
return has_ns_capability(t, &init_user_ns, cap);
}
EXPORT_SYMBOL(has_capability);

/**
* has_ns_capability_noaudit - Does a task have a capability (unaudited)
* in a specific user ns.
Expand Down
9 changes: 5 additions & 4 deletions security/commoncap.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,11 @@ static inline int cap_capable_helper(const struct cred *cred,
* Determine whether the nominated task has the specified capability amongst
* its effective set, returning 0 if it does, -ve if it does not.
*
* NOTE WELL: cap_has_capability() cannot be used like the kernel's capable()
* and has_capability() functions. That is, it has the reverse semantics:
* cap_has_capability() returns 0 when a task has a capability, but the
* kernel's capable() and has_capability() returns 1 for this case.
* NOTE WELL: cap_capable() has reverse semantics to the capable() call
* and friends. That is cap_capable() returns an int 0 when a task has
* a capability, while the kernel's capable(), has_ns_capability(),
* has_ns_capability_noaudit(), and has_capability_noaudit() return a
* bool true (1) for this case.
*/
int cap_capable(const struct cred *cred, struct user_namespace *target_ns,
int cap, unsigned int opts)
Expand Down

0 comments on commit 78fb88e

Please sign in to comment.