commit 5b7506198a6872764a51e32363e219916e1e592e Author: Minwoo Im Date: Wed Apr 24 01:48:58 2019 +0100 ioctl: Fix wrong return case of get_property If get_property_helper() succeeds in the first time, and then fails in the next time, then the ret value will not be updated to an error value. This patch removes 'ret' variable to make 'err' to return being updated everytime get_property_helper() invoked. Signed-off-by: Minwoo Im diff --git a/nvme-ioctl.c b/nvme-ioctl.c index 16fdc66..75bf9fa 100644 --- a/nvme-ioctl.c +++ b/nvme-ioctl.c @@ -612,7 +612,7 @@ int nvme_get_property(int fd, int offset, uint64_t *value) int nvme_get_properties(int fd, void **pbar) { int offset, advance; - int err, ret = -EINVAL; + int err; int size = getpagesize(); *pbar = malloc(size); @@ -624,15 +624,13 @@ int nvme_get_properties(int fd, void **pbar) memset(*pbar, 0xff, size); for (offset = NVME_REG_CAP; offset <= NVME_REG_CMBSZ; offset += advance) { err = get_property_helper(fd, offset, *pbar + offset, &advance); - if (!err) - ret = 0; - else { + if (err) { free(*pbar); break; } } - return ret; + return err; } int nvme_set_property(int fd, int offset, int value)