Commit c5cf4203 authored by Max Kellermann's avatar Max Kellermann Committed by Ilya Dryomov
Browse files

ceph: fix cred leak in ceph_mds_check_access()



get_current_cred() increments the reference counter, but the
put_cred() call was missing.

Cc: stable@vger.kernel.org
Fixes: 596afb0b ("ceph: add ceph_mds_check_access() helper")
Signed-off-by: default avatarMax Kellermann <max.kellermann@ionos.com>
Reviewed-by: default avatarXiubo Li <xiubli@redhat.com>
Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent 23426309
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -5728,6 +5728,7 @@ int ceph_mds_check_access(struct ceph_mds_client *mdsc, char *tpath, int mask)

		err = ceph_mds_auth_match(mdsc, s, cred, tpath);
		if (err < 0) {
			put_cred(cred);
			return err;
		} else if (err > 0) {
			/* always follow the last auth caps' permission */
@@ -5743,6 +5744,8 @@ int ceph_mds_check_access(struct ceph_mds_client *mdsc, char *tpath, int mask)
		}
	}

	put_cred(cred);

	doutc(cl, "root_squash_perms %d, rw_perms_s %p\n", root_squash_perms,
	      rw_perms_s);
	if (root_squash_perms && rw_perms_s == NULL) {