]> www.infradead.org Git - users/hch/nvme-cli.git/commitdiff
nvme-cli:nvme:fix fd leak when an error occurs
authorWu Bo <wubo40@huawei.com>
Wed, 6 May 2020 03:26:54 +0000 (11:26 +0800)
committerKeith Busch <kbusch@kernel.org>
Wed, 6 May 2020 15:40:32 +0000 (09:40 -0600)
nvme.c

diff --git a/nvme.c b/nvme.c
index 64b57503c9d52a1bc323bf20b3ce4bf793b9a5f7..f4218a3198c8f3110109d9a7241f09c9f1bf3c4e 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -148,10 +148,13 @@ static int open_dev(char *dev)
        fd = err;
 
        err = fstat(fd, &nvme_stat);
-       if (err < 0)
+       if (err < 0) {
+               close(fd);
                goto perror;
+       }
        if (!S_ISCHR(nvme_stat.st_mode) && !S_ISBLK(nvme_stat.st_mode)) {
                fprintf(stderr, "%s is not a block or character device\n", dev);
+               close(fd);
                return -ENODEV;
        }
        return fd;