diff options
author | Arvind Yadav <arvind.yadav.cs@gmail.com> | 2017-06-20 15:00:53 +0530 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-06-28 20:16:41 +0100 |
commit | 704c3098e4c55a409eaf5ec89cee1bccc8d44f4c (patch) | |
tree | bc3eaa8bed4cff6a5b40eff96f2ba1d691875711 /drivers/spi | |
parent | 478de2ba0d2dafcd460b17f032139e2b6b4eb1ac (diff) | |
download | linux-704c3098e4c55a409eaf5ec89cee1bccc8d44f4c.tar.gz linux-704c3098e4c55a409eaf5ec89cee1bccc8d44f4c.tar.bz2 linux-704c3098e4c55a409eaf5ec89cee1bccc8d44f4c.zip |
spi: loopback-test: Fix kfree() NULL pointer error.
Here, rx/tx allocation can fail. So avoid kvfree call
with NULL pointer.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-loopback-test.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/spi/spi-loopback-test.c b/drivers/spi/spi-loopback-test.c index 514997a143dc..3459965004f8 100644 --- a/drivers/spi/spi-loopback-test.c +++ b/drivers/spi/spi-loopback-test.c @@ -1021,10 +1021,9 @@ int spi_test_run_tests(struct spi_device *spi, rx = vmalloc(SPI_TEST_MAX_SIZE_PLUS); else rx = kzalloc(SPI_TEST_MAX_SIZE_PLUS, GFP_KERNEL); - if (!rx) { - ret = -ENOMEM; - goto out; - } + if (!rx) + return -ENOMEM; + if (use_vmalloc) tx = vmalloc(SPI_TEST_MAX_SIZE_PLUS); @@ -1032,7 +1031,7 @@ int spi_test_run_tests(struct spi_device *spi, tx = kzalloc(SPI_TEST_MAX_SIZE_PLUS, GFP_KERNEL); if (!tx) { ret = -ENOMEM; - goto out; + goto err_tx; } /* now run the individual tests in the table */ @@ -1057,8 +1056,9 @@ int spi_test_run_tests(struct spi_device *spi, } out: - kvfree(rx); kvfree(tx); +err_tx: + kvfree(rx); return ret; } EXPORT_SYMBOL_GPL(spi_test_run_tests); |