Commit f0666b1a authored by Sylvain Munaut's avatar Sylvain Munaut Committed by Sage Weil

libceph: fix crypto key null deref, memory leak

Avoid crashing if the crypto key payload was NULL, as when it was not correctly
allocated and initialized.  Also, avoid leaking it.
Signed-off-by: default avatarSylvain Munaut <tnt@246tNt.com>
Signed-off-by: default avatarSage Weil <sage@inktank.com>
Reviewed-by: default avatarAlex Elder <elder@inktank.com>
parent 5ef50c3b
...@@ -466,6 +466,7 @@ void ceph_key_destroy(struct key *key) { ...@@ -466,6 +466,7 @@ void ceph_key_destroy(struct key *key) {
struct ceph_crypto_key *ckey = key->payload.data; struct ceph_crypto_key *ckey = key->payload.data;
ceph_crypto_key_destroy(ckey); ceph_crypto_key_destroy(ckey);
kfree(ckey);
} }
struct key_type key_type_ceph = { struct key_type key_type_ceph = {
......
...@@ -16,7 +16,8 @@ struct ceph_crypto_key { ...@@ -16,7 +16,8 @@ struct ceph_crypto_key {
static inline void ceph_crypto_key_destroy(struct ceph_crypto_key *key) static inline void ceph_crypto_key_destroy(struct ceph_crypto_key *key)
{ {
kfree(key->key); if (key)
kfree(key->key);
} }
extern int ceph_crypto_key_clone(struct ceph_crypto_key *dst, extern int ceph_crypto_key_clone(struct ceph_crypto_key *dst,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment