OSDN Git Service

dmaengine: dmatest: fix a small memory leak in dmatest_func()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 3 Dec 2018 14:49:33 +0000 (17:49 +0300)
committerVinod Koul <vkoul@kernel.org>
Wed, 5 Dec 2018 08:07:46 +0000 (13:37 +0530)
We recently moved the test size tests around but it means we need to
adjust the error handling as well or we leak the "pq_coefs" memory.  I
updated the label name to reflect that we're freeing coefs.

Fixes: 787d3083caf8 ("dmaengine: dmatest: move size checks earlier in function")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/dmatest.c

index e71aa1e..28deaa0 100644 (file)
@@ -511,18 +511,18 @@ static int dmatest_func(void *data)
        if ((src_cnt + dst_cnt) >= 255) {
                pr_err("too many buffers (%d of 255 supported)\n",
                       src_cnt + dst_cnt);
-               goto err_thread_type;
+               goto err_free_coefs;
        }
 
        if (1 << align > params->buf_size) {
                pr_err("%u-byte buffer too small for %d-byte alignment\n",
                       params->buf_size, 1 << align);
-               goto err_thread_type;
+               goto err_free_coefs;
        }
 
        thread->srcs = kcalloc(src_cnt + 1, sizeof(u8 *), GFP_KERNEL);
        if (!thread->srcs)
-               goto err_srcs;
+               goto err_free_coefs;
 
        thread->usrcs = kcalloc(src_cnt + 1, sizeof(u8 *), GFP_KERNEL);
        if (!thread->usrcs)
@@ -800,7 +800,7 @@ err_srcbuf:
        kfree(thread->usrcs);
 err_usrcs:
        kfree(thread->srcs);
-err_srcs:
+err_free_coefs:
        kfree(pq_coefs);
 err_thread_type:
        pr_info("%s: summary %u tests, %u failures %llu iops %llu KB/s (%d)\n",