diff options
author | David Teigland <teigland@redhat.com> | 2023-03-08 11:11:32 -0600 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2023-03-08 11:11:32 -0600 |
commit | da44f2b6fe1e0edbd3ee875c831f3e467f242bc0 (patch) | |
tree | 8aadd6322c773f51883d67e0fb6a8f39f7bef7d7 /daemons | |
parent | cd14d3fcc0e03136d0cea1ab1a9edff3b8b9dbeb (diff) | |
download | lvm2-da44f2b6fe1e0edbd3ee875c831f3e467f242bc0.tar.gz |
lvmlockd: clean up get_local_nodeid
Hard to see if fclose calls were correct, and coverity couldn't figure
it out either, so make it clear.
Diffstat (limited to 'daemons')
-rw-r--r-- | daemons/lvmlockd/lvmlockd-dlm.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/daemons/lvmlockd/lvmlockd-dlm.c b/daemons/lvmlockd/lvmlockd-dlm.c index 248081d0e..ce9d9acf2 100644 --- a/daemons/lvmlockd/lvmlockd-dlm.c +++ b/daemons/lvmlockd/lvmlockd-dlm.c @@ -227,8 +227,9 @@ static int get_local_nodeid(void) struct dirent *de; DIR *ls_dir; char ls_comms_path[PATH_MAX]; - FILE *file = NULL; + FILE *file; char line[LOCK_LINE_MAX]; + char *str1, *str2; int rv = -1, val; memset(ls_comms_path, 0, sizeof(ls_comms_path)); @@ -243,30 +244,33 @@ static int get_local_nodeid(void) memset(ls_comms_path, 0, sizeof(ls_comms_path)); snprintf(ls_comms_path, PATH_MAX, "%s/%s/local", DLM_COMMS_PATH, de->d_name); - file = fopen(ls_comms_path, "r"); - if (!file) + + if (!(file = fopen(ls_comms_path, "r"))) continue; - if (fgets(line, LOCK_LINE_MAX, file)) { - fclose(file); + str1 = fgets(line, LOCK_LINE_MAX, file); + fclose(file); + + if (str1) { rv = sscanf(line, "%d", &val); if ((rv == 1) && (val == 1 )) { memset(ls_comms_path, 0, sizeof(ls_comms_path)); snprintf(ls_comms_path, PATH_MAX, "%s/%s/nodeid", DLM_COMMS_PATH, de->d_name); - file = fopen(ls_comms_path, "r"); - if (!file) + + if (!(file = fopen(ls_comms_path, "r"))) continue; - if (fgets(line, LOCK_LINE_MAX, file)) { + str2 = fgets(line, LOCK_LINE_MAX, file); + fclose(file); + + if (str2) { rv = sscanf(line, "%d", &val); if (rv == 1) { - fclose(file); closedir(ls_dir); return val; } } } } - fclose(file); } if (closedir(ls_dir)) |