]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
KEYS: Use a typedef for restrict_link function pointers
authorMat Martineau <mathew.j.martineau@linux.intel.com>
Mon, 25 Apr 2016 18:30:39 +0000 (11:30 -0700)
committerMat Martineau <mathew.j.martineau@linux.intel.com>
Mon, 3 Apr 2017 17:24:55 +0000 (10:24 -0700)
This pointer type needs to be returned from a lookup function, and
without a typedef the syntax gets cumbersome.

Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Documentation/security/keys.txt
include/linux/key.h
security/keys/key.c
security/keys/keyring.c

index 0e03baf271bdb00afa594770cd3bf170eab33160..4502237b12a76b4883fcd6d2ef22860bfd7ea5bb 100644 (file)
@@ -1032,10 +1032,7 @@ payload contents" for more information.
        struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid,
                                  const struct cred *cred,
                                  key_perm_t perm,
-                                 int (*restrict_link)(struct key *,
-                                                      const struct key_type *,
-                                                      unsigned long,
-                                                      const union key_payload *),
+                                 key_restrict_link_func_t restrict_link,
                                  unsigned long flags,
                                  struct key *dest);
 
index 9d9fac583dd3384e5b8dbf7395b88635fd4105a5..3bb3270438696a792617f716b9616195d25d7d3c 100644 (file)
@@ -127,6 +127,10 @@ static inline bool is_key_possessed(const key_ref_t key_ref)
        return (unsigned long) key_ref & 1UL;
 }
 
+typedef int (*key_restrict_link_func_t)(struct key *keyring,
+                                       const struct key_type *type,
+                                       const union key_payload *payload);
+
 /*****************************************************************************/
 /*
  * authentication token / access credential / keyring
@@ -215,9 +219,7 @@ struct key {
         * overrides this, allowing the kernel to add extra keys without
         * restriction.
         */
-       int (*restrict_link)(struct key *keyring,
-                            const struct key_type *type,
-                            const union key_payload *payload);
+       key_restrict_link_func_t restrict_link;
 };
 
 extern struct key *key_alloc(struct key_type *type,
@@ -226,9 +228,7 @@ extern struct key *key_alloc(struct key_type *type,
                             const struct cred *cred,
                             key_perm_t perm,
                             unsigned long flags,
-                            int (*restrict_link)(struct key *,
-                                                 const struct key_type *,
-                                                 const union key_payload *));
+                            key_restrict_link_func_t restrict_link);
 
 
 #define KEY_ALLOC_IN_QUOTA             0x0000  /* add to quota, reject if would overrun */
@@ -304,9 +304,7 @@ extern struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid
                                 const struct cred *cred,
                                 key_perm_t perm,
                                 unsigned long flags,
-                                int (*restrict_link)(struct key *,
-                                                     const struct key_type *,
-                                                     const union key_payload *),
+                                key_restrict_link_func_t restrict_link,
                                 struct key *dest);
 
 extern int restrict_link_reject(struct key *keyring,
index b4958b36fa27adbc653c010a8470965084e9a3e3..08dfa13f6a85059cfc38e205dbedc9521cc34ada 100644 (file)
@@ -225,9 +225,7 @@ serial_exists:
 struct key *key_alloc(struct key_type *type, const char *desc,
                      kuid_t uid, kgid_t gid, const struct cred *cred,
                      key_perm_t perm, unsigned long flags,
-                     int (*restrict_link)(struct key *,
-                                          const struct key_type *,
-                                          const union key_payload *))
+                     key_restrict_link_func_t restrict_link)
 {
        struct key_user *user = NULL;
        struct key *key;
@@ -806,9 +804,7 @@ key_ref_t key_create_or_update(key_ref_t keyring_ref,
        struct key *keyring, *key = NULL;
        key_ref_t key_ref;
        int ret;
-       int (*restrict_link)(struct key *,
-                            const struct key_type *,
-                            const union key_payload *) = NULL;
+       key_restrict_link_func_t restrict_link = NULL;
 
        /* look up the key type to see if it's one of the registered kernel
         * types */
index 3d95f7d02ba18e9b2b83a388086e359934edaabb..1b29ac759bf79ead7e7401bad1cabf05412cbb46 100644 (file)
@@ -492,9 +492,7 @@ static long keyring_read(const struct key *keyring,
 struct key *keyring_alloc(const char *description, kuid_t uid, kgid_t gid,
                          const struct cred *cred, key_perm_t perm,
                          unsigned long flags,
-                         int (*restrict_link)(struct key *,
-                                              const struct key_type *,
-                                              const union key_payload *),
+                         key_restrict_link_func_t restrict_link,
                          struct key *dest)
 {
        struct key *keyring;