Whamcloud - gitweb
LU-17000 misc: avoid memory leaks in error handling 62/58362/3
authorAndreas Dilger <adilger@whamcloud.com>
Tue, 11 Mar 2025 02:53:19 +0000 (20:53 -0600)
committerOleg Drokin <green@whamcloud.com>
Wed, 19 Mar 2025 23:37:11 +0000 (23:37 +0000)
Fix wrong GOTO() label "out_free:" instead of "out_record_free:".

Quiet false positive for leak in krb5_make_checksum(). Since
"req == NULL" is never returned by cfs_crypto_hash_init(), then
cfs_crypto_hash_final() is always called. Coverity is confused.

CoverityID: 440607 ("Resource leak")
CoverityID: 457047 ("Resource leak")

Test-Parameters: trivial
Fixes: 11eef3f735 ("LU-10499 pcc: get PCC state for file without opening")
Fixes: 553d93361d ("LU-8602 gss: get rid of cfs_crypto_hash_desc")
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I725921ad89534b8ff2d8bcd526fceca3fcd90d04
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58362
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/llite/dir.c
lustre/ptlrpc/gss/gss_krb5_mech.c

index 1479223..f762656 100644 (file)
@@ -2816,7 +2816,7 @@ out_ladvise:
                        RETURN(-ENOMEM);
 
                if (copy_from_user(state, ustate, sizeof(*state)))
-                       GOTO(out_free, rc = -EFAULT);
+                       GOTO(out_state_free, rc = -EFAULT);
 
                name = state->pccs_path;
                namelen = strlen(name);
index 04a1eb9..4e03eea 100644 (file)
@@ -469,8 +469,7 @@ __s32 krb5_make_checksum(__u32 enctype,
        }
 
 out_free_hash:
-       if (req)
-               cfs_crypto_hash_final(req, cksum->data, &cksum->len);
+       cfs_crypto_hash_final(req, cksum->data, &cksum->len);
 out_no_hash:
        return rc ? GSS_S_FAILURE : GSS_S_COMPLETE;
 }