summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo A. R. Silva <gustavo@embeddedor.com>2018-09-04 22:07:49 +0300
committerGerd Hoffmann <kraxel@redhat.com>2018-09-05 09:28:28 +0300
commit683a0e630cb463d18e9c158496270dc918cf5437 (patch)
tree375baeae4e1290f05cf9d1f0de43c2982574e2cb
parenta3b815f09bb846255c458c181b8a5b1cc66891b4 (diff)
downloadlinux-683a0e630cb463d18e9c158496270dc918cf5437.tar.xz
dma-buf/udmabuf: Fix NULL pointer dereference in udmabuf_create
There is a potential execution path in which pointer memfd is NULL when passed as argument to fput(), hence there is a NULL pointer dereference in fput(). Fix this by null checking *memfd* before calling fput(). Addresses-Coverity-ID: 1473174 ("Explicit null dereferenced") Fixes: fbb0de795078 ("Add udmabuf misc device") Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Link: http://patchwork.freedesktop.org/patch/msgid/20180904190749.GA9308@embeddedor.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--drivers/dma-buf/udmabuf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
index 8e24204526cc..2e8502250afe 100644
--- a/drivers/dma-buf/udmabuf.c
+++ b/drivers/dma-buf/udmabuf.c
@@ -194,7 +194,8 @@ err_put_pages:
while (pgbuf > 0)
put_page(ubuf->pages[--pgbuf]);
err_free_ubuf:
- fput(memfd);
+ if (memfd)
+ fput(memfd);
kfree(ubuf->pages);
kfree(ubuf);
return ret;