aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKiran Padwal <kiran.padwal@smartplayin.com>2014-09-19 03:14:39 -0400
committerPeter Huewe <peterhuewe@gmx.de>2015-01-17 08:00:05 -0500
commitbb95cd34ba4c9467114acc78eeddd53ab1c10085 (patch)
tree7805a7a694e47e1c91175d623c31fff3ef4d1bd8
parent398a1e71dc827b994b7f2f56c7c2186fea7f8d75 (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.c4
-rw-r--r--drivers/char/tpm/tpm_i2c_nuvoton.c5
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