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