summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Song <songkai01@inspur.com>2021-09-29 16:08:44 +0800
committerSimon Horman <horms@verge.net.au>2021-10-05 10:25:50 +0200
commitbcee4f232e443053e1f6b9297716cad2488f7322 (patch)
treec9deabffc495843bb81578f5e02e2bafcf866939
parent84ef6cbfa454f94ece0f78228800d2e1555cf6cc (diff)
downloadkexec-tools-bcee4f232e443053e1f6b9297716cad2488f7322.tar.gz
Add some necessary fclose() calls
fclose should be called before function exits Signed-off-by: Kai Song <songkai01@inspur.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/arch/ppc/fixup_dtb.c2
-rw-r--r--kexec/arch/ppc64/crashdump-ppc64.c1
-rw-r--r--kexec/arch/ppc64/kexec-ppc64.c4
-rw-r--r--kexec/symbols.c2
4 files changed, 8 insertions, 1 deletions
diff --git a/kexec/arch/ppc/fixup_dtb.c b/kexec/arch/ppc/fixup_dtb.c
index 4524c8cc..92a0bfdb 100644
--- a/kexec/arch/ppc/fixup_dtb.c
+++ b/kexec/arch/ppc/fixup_dtb.c
@@ -382,6 +382,8 @@ static void save_fixed_up_dtb(char *blob_buf, off_t blob_size)
} else {
dbgprintf("Unable to write debug.dtb\n");
}
+
+ fclose(fp);
} else {
dbgprintf("Unable to dump flat device tree to debug.dtb\n");
}
diff --git a/kexec/arch/ppc64/crashdump-ppc64.c b/kexec/arch/ppc64/crashdump-ppc64.c
index addd769d..91f95210 100644
--- a/kexec/arch/ppc64/crashdump-ppc64.c
+++ b/kexec/arch/ppc64/crashdump-ppc64.c
@@ -161,6 +161,7 @@ static int get_dyn_reconf_crash_memory_ranges(void)
fprintf(stderr,
"Error: Number of crash memory ranges"
" excedeed the max limit\n");
+ fclose(file);
return -1;
}
diff --git a/kexec/arch/ppc64/kexec-ppc64.c b/kexec/arch/ppc64/kexec-ppc64.c
index 4e70b13b..5b177408 100644
--- a/kexec/arch/ppc64/kexec-ppc64.c
+++ b/kexec/arch/ppc64/kexec-ppc64.c
@@ -200,8 +200,10 @@ static int get_dyn_reconf_base_ranges(void)
fclose(file);
return -1;
}
- if (nr_memory_ranges >= max_memory_ranges)
+ if (nr_memory_ranges >= max_memory_ranges) {
+ fclose(file);
return -1;
+ }
/*
* If the property is ibm,dynamic-memory-v2, the first 4 bytes
diff --git a/kexec/symbols.c b/kexec/symbols.c
index e88f7f34..04377ca6 100644
--- a/kexec/symbols.c
+++ b/kexec/symbols.c
@@ -24,11 +24,13 @@ unsigned long long get_kernel_sym(const char *symbol)
if (strcmp(sym, symbol) == 0) {
dbgprintf("kernel symbol %s vaddr = %16llx\n",
symbol, vaddr);
+ fclose(fp);
return vaddr;
}
}
dbgprintf("Cannot get kernel %s symbol address\n", symbol);
+ fclose(fp);
return 0;
}