misc: fastrpc: fix memory leak when out of memory
authorJorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Fri, 5 Jul 2019 08:13:03 +0000 (10:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jul 2019 12:46:17 +0000 (14:46 +0200)
Do the necessary house-keeping if the allocated memory wont be used

Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Link: https://lore.kernel.org/r/20190705081303.14170-1-jorge.ramirez-ortiz@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/fastrpc.c

index 98603e2..c790585 100644 (file)
@@ -279,8 +279,11 @@ static int fastrpc_buf_alloc(struct fastrpc_user *fl, struct device *dev,
 
        buf->virt = dma_alloc_coherent(dev, buf->size, (dma_addr_t *)&buf->phys,
                                       GFP_KERNEL);
-       if (!buf->virt)
+       if (!buf->virt) {
+               mutex_destroy(&buf->lock);
+               kfree(buf);
                return -ENOMEM;
+       }
 
        if (fl->sctx && fl->sctx->sid)
                buf->phys += ((u64)fl->sctx->sid << 32);