]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
list-ctrl: Do not return directly without freeing fd
authorMinwoo Im <minwoo.im.dev@gmail.com>
Thu, 25 Apr 2019 14:21:45 +0000 (23:21 +0900)
committerMinwoo Im <minwoo.im.dev@gmail.com>
Sat, 27 Apr 2019 05:10:49 +0000 (14:10 +0900)
It was returning an error value without freeding open fd for the device.
This patch replaces 'return' with 'goto' to free fd.

Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
nvme.c

diff --git a/nvme.c b/nvme.c
index 9f088a611d9b262f4980786c82dffb8668971a5d..cd0e641533b294742ce00617472782cc2c6275a7 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -925,7 +925,8 @@ static int list_ctrl(int argc, char **argv, struct command *cmd, struct plugin *
 
        if (posix_memalign((void *)&cntlist, getpagesize(), 0x1000)) {
                fprintf(stderr, "can not allocate controller list payload\n");
-               return ENOMEM;
+               err = -ENOMEM;
+               goto close_fd;
        }
 
        err = nvme_identify_ctrl_list(fd, cfg.namespace_id, cfg.cntid, cntlist);
@@ -942,6 +943,7 @@ static int list_ctrl(int argc, char **argv, struct command *cmd, struct plugin *
 
        free(cntlist);
 
+close_fd:
        close(fd);
 
        return err;