Use credential guards for scoped credential override with automatic
restoration on scope exit.

Signed-off-by: Christian Brauner <[email protected]>
---
 net/dns_resolver/dns_query.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/net/dns_resolver/dns_query.c b/net/dns_resolver/dns_query.c
index 82b084cc1cc6..53da62984447 100644
--- a/net/dns_resolver/dns_query.c
+++ b/net/dns_resolver/dns_query.c
@@ -78,7 +78,6 @@ int dns_query(struct net *net,
 {
        struct key *rkey;
        struct user_key_payload *upayload;
-       const struct cred *saved_cred;
        size_t typelen, desclen;
        char *desc, *cp;
        int ret, len;
@@ -124,9 +123,8 @@ int dns_query(struct net *net,
        /* make the upcall, using special credentials to prevent the use of
         * add_key() to preinstall malicious redirections
         */
-       saved_cred = override_creds(dns_resolver_cache);
-       rkey = request_key_net(&key_type_dns_resolver, desc, net, options);
-       revert_creds(saved_cred);
+       scoped_with_creds(dns_resolver_cache)
+               rkey = request_key_net(&key_type_dns_resolver, desc, net, 
options);
        kfree(desc);
        if (IS_ERR(rkey)) {
                ret = PTR_ERR(rkey);

-- 
2.47.3


Reply via email to