In read_list func, if strtoull() fails in while loop, we will return the error code directly. Then, memory of variable lst will be leaked without setting to *list. Signed-off-by: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx> Signed-off-by: linfeilong <linfeilong@xxxxxxxxxx> --- debugfs/util.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/debugfs/util.c b/debugfs/util.c index be6b550e..9e880548 100644 --- a/debugfs/util.c +++ b/debugfs/util.c @@ -530,12 +530,16 @@ errcode_t read_list(char *str, blk64_t **list, size_t *len) errno = 0; y = x = strtoull(tok, &e, 0); - if (errno) - return errno; + if (errno) { + retval = errno; + break; + } if (*e == '-') { y = strtoull(e + 1, NULL, 0); - if (errno) - return errno; + if (errno) { + retval = errno; + break; + } } else if (*e != 0) { retval = EINVAL; break; -- 2.19.1