[PATCH 04/14] staging: gasket: avoid copy to user on error in coherent alloc config

From: Todd Poynor
Date: Sat Jul 21 2018 - 09:36:20 EST


From: Todd Poynor <toddpoynor@xxxxxxxxxx>

gasket_config_coherent_allocator() on error return the error to caller
without copying a possibly-update DMA address back to userspace.

Reported-by: Dmitry Torokhov <dtor@xxxxxxxxxxxx>
Signed-off-by: Todd Poynor <toddpoynor@xxxxxxxxxx>
---
drivers/staging/gasket/gasket_ioctl.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/gasket/gasket_ioctl.c b/drivers/staging/gasket/gasket_ioctl.c
index 1b164ac7a0496..8cf094b90cdb0 100644
--- a/drivers/staging/gasket/gasket_ioctl.c
+++ b/drivers/staging/gasket/gasket_ioctl.c
@@ -441,8 +441,10 @@ static int gasket_config_coherent_allocator(
gasket_dev, ibuf.size, &ibuf.dma_address,
ibuf.page_table_index);
}
+ if (ret)
+ return ret;
if (copy_to_user(argp, &ibuf, sizeof(ibuf)))
return -EFAULT;

- return ret;
+ return 0;
}
--
2.18.0.233.g985f88cf7e-goog