diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2015-10-26 11:03:46 +0100 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2015-11-02 23:36:48 +0100 |
commit | cbf99a11fb14db0835acd79ecd7469d37e398660 (patch) | |
tree | 6d9b61ad72fd9cecd013e2dd70388d55e6491a9d /net/ceph/crypto.h | |
parent | 5e804ac4824302efc3038e086cb21f2e93ab8900 (diff) | |
download | lwn-cbf99a11fb14db0835acd79ecd7469d37e398660.tar.gz lwn-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.h | 4 |
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, |