Whamcloud - gitweb
debugfs: fix memory leak problem in read_list()
authorZhiqiang Liu <liuzhiqiang26@huawei.com>
Sat, 20 Feb 2021 08:41:29 +0000 (16:41 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 25 Feb 2021 17:02:24 +0000 (12:02 -0500)
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@huawei.com>
Signed-off-by: linfeilong <linfeilong@huawei.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
debugfs/util.c

index be6b550..9e88054 100644 (file)
@@ -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;