aboutsummaryrefslogtreecommitdiffstats
path: root/net/ceph/crypto.h
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2015-10-26 11:03:46 +0100
committerIlya Dryomov <idryomov@gmail.com>2015-11-02 23:36:48 +0100
commitcbf99a11fb14db0835acd79ecd7469d37e398660 (patch)
tree6d9b61ad72fd9cecd013e2dd70388d55e6491a9d /net/ceph/crypto.h
parentceph: don't invalidate page cache when inode is no longer used (diff)
downloadlinux-dev-cbf99a11fb14db0835acd79ecd7469d37e398660.tar.xz
linux-dev-cbf99a11fb14db0835acd79ecd7469d37e398660.zip
libceph: introduce ceph_x_authorizer_cleanup()
Commit ae385eaf24dc ("libceph: store session key in cephx authorizer") introduced ceph_x_authorizer::session_key, but didn't update all the exit/error paths. Introduce ceph_x_authorizer_cleanup() to encapsulate ceph_x_authorizer cleanup and switch to it. This fixes ceph_x_destroy(), which currently always leaks key and ceph_x_build_authorizer() error paths. Signed-off-by: Ilya Dryomov <idryomov@gmail.com> Reviewed-by: Yan, Zheng <zyan@redhat.com>
Diffstat (limited to 'net/ceph/crypto.h')
-rw-r--r--net/ceph/crypto.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ceph/crypto.h b/net/ceph/crypto.h
index d1498224c49d..2e9cab09f37b 100644
--- a/net/ceph/crypto.h
+++ b/net/ceph/crypto.h
@@ -16,8 +16,10 @@ struct ceph_crypto_key {
static inline void ceph_crypto_key_destroy(struct ceph_crypto_key *key)
{
- if (key)
+ if (key) {
kfree(key->key);
+ key->key = NULL;
+ }
}
int ceph_crypto_key_clone(struct ceph_crypto_key *dst,