This patch will fix missing fclose() calls when fgets() of do_lockdump()
fails.
---
 dlm_tool/main.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlm_tool/main.c b/dlm_tool/main.c
index 52fd5b89..2e6810d6 100644
--- a/dlm_tool/main.c
+++ b/dlm_tool/main.c
@@ -1177,8 +1177,9 @@ static void do_lockdump(char *name)
        }
 
        /* skip the header on the first line */
-       if (!fgets(line, LOCK_LINE_MAX, file))
-               return;
+       if (!fgets(line, LOCK_LINE_MAX, file)) {
+               goto out;
+       }
 
        while (fgets(line, LOCK_LINE_MAX, file)) {
                rv = sscanf(line, "%x %d %x %u %llu %x %x %hhd %hhd %hhd %u %d 
%d",
@@ -1199,7 +1200,7 @@ static void do_lockdump(char *name)
                if (rv != 13) {
                        fprintf(stderr, "invalid debugfs line %d: %s\n",
                                rv, line);
-                       return;
+                       goto out;
                }
 
                memset(r_name, 0, sizeof(r_name));
@@ -1229,6 +1230,7 @@ static void do_lockdump(char *name)
                        ownpid, nodeid, r_name);
        }
 
+ out:
        fclose(file);
 }
 
-- 
2.31.1

Reply via email to