diff options
author | Kiran Padwal <kiran.padwal@smartplayin.com> | 2014-09-19 03:14:39 -0400 |
---|---|---|
committer | Peter Huewe <peterhuewe@gmx.de> | 2015-01-17 08:00:05 -0500 |
commit | bb95cd34ba4c9467114acc78eeddd53ab1c10085 (patch) | |
tree | 7805a7a694e47e1c91175d623c31fff3ef4d1bd8 | |
parent | 398a1e71dc827b994b7f2f56c7c2186fea7f8d75 (diff) |
char: tpm: Add missing error check for devm_kzalloc
Currently these driver are missing a check on the return value of devm_kzalloc,
which would cause a NULL pointer dereference in a OOM situation.
This patch adds a missing check for tpm_i2c_atmel.c and tpm_i2c_nuvoton.c
Cc: stable@vger.kernel.org
Signed-off-by: Kiran Padwal <kiran.padwal@smartplayin.com>
Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
-rw-r--r-- | drivers/char/tpm/tpm_i2c_atmel.c | 4 | ||||
-rw-r--r-- | drivers/char/tpm/tpm_i2c_nuvoton.c | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/char/tpm/tpm_i2c_atmel.c b/drivers/char/tpm/tpm_i2c_atmel.c index 77272925dee6..503a85ae176c 100644 --- a/drivers/char/tpm/tpm_i2c_atmel.c +++ b/drivers/char/tpm/tpm_i2c_atmel.c | |||
@@ -168,6 +168,10 @@ static int i2c_atmel_probe(struct i2c_client *client, | |||
168 | 168 | ||
169 | chip->vendor.priv = devm_kzalloc(dev, sizeof(struct priv_data), | 169 | chip->vendor.priv = devm_kzalloc(dev, sizeof(struct priv_data), |
170 | GFP_KERNEL); | 170 | GFP_KERNEL); |
171 | if (!chip->vendor.priv) { | ||
172 | rc = -ENOMEM; | ||
173 | goto out_err; | ||
174 | } | ||
171 | 175 | ||
172 | /* Default timeouts */ | 176 | /* Default timeouts */ |
173 | chip->vendor.timeout_a = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT); | 177 | chip->vendor.timeout_a = msecs_to_jiffies(TPM_I2C_SHORT_TIMEOUT); |
diff --git a/drivers/char/tpm/tpm_i2c_nuvoton.c b/drivers/char/tpm/tpm_i2c_nuvoton.c index 7b158efd49f7..23c7b137a7fd 100644 --- a/drivers/char/tpm/tpm_i2c_nuvoton.c +++ b/drivers/char/tpm/tpm_i2c_nuvoton.c | |||
@@ -538,6 +538,11 @@ static int i2c_nuvoton_probe(struct i2c_client *client, | |||
538 | 538 | ||
539 | chip->vendor.priv = devm_kzalloc(dev, sizeof(struct priv_data), | 539 | chip->vendor.priv = devm_kzalloc(dev, sizeof(struct priv_data), |
540 | GFP_KERNEL); | 540 | GFP_KERNEL); |
541 | if (!chip->vendor.priv) { | ||
542 | rc = -ENOMEM; | ||
543 | goto out_err; | ||
544 | } | ||
545 | |||
541 | init_waitqueue_head(&chip->vendor.read_queue); | 546 | init_waitqueue_head(&chip->vendor.read_queue); |
542 | init_waitqueue_head(&chip->vendor.int_queue); | 547 | init_waitqueue_head(&chip->vendor.int_queue); |
543 | 548 | ||