freedreno: fix potential fd leak in error path
Signed-off-by: Rob Clark <robclark@freedesktop.org>
diff --git a/freedreno/freedreno_device.c b/freedreno/freedreno_device.c
index 027414e..3da5c7c 100644
--- a/freedreno/freedreno_device.c
+++ b/freedreno/freedreno_device.c
@@ -95,9 +95,12 @@
*/
struct fd_device * fd_device_new_dup(int fd)
{
- struct fd_device *dev = fd_device_new(dup(fd));
+ int dup_fd = dup(fd);
+ struct fd_device *dev = fd_device_new(dup_fd);
if (dev)
dev->closefd = 1;
+ else
+ close(dup_fd);
return dev;
}