summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNigel Croxon <ncroxon@redhat.com>2023-05-16 08:34:07 -0400
committerNigel Croxon <ncroxon@redhat.com>2023-05-16 08:34:07 -0400
commitfe76d597a9b85f8af55235dd41722abf8fe63ca1 (patch)
treed45b1ade2e78add818f5fd4c0982f037a72f012d
parent24c80efc1af996bf8252f4a2f5ffc02d8c44640b (diff)
downloadgnu-efi-fe76d597a9b85f8af55235dd41722abf8fe63ca1.tar.gz
Make ELF constructors/destructors work
Since commit [4f8b339facb471192e021fffd5db545a0fbddbc3] Simple EFI tools like for example t.c from the apps directory crash. The reason seems to be a wrong null-pointer check in the ctors()/dtors() functions in lib/entry.c. sourceforge.net/u/davemueller Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
-rw-r--r--lib/entry.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/entry.c b/lib/entry.c
index d852608..6338112 100644
--- a/lib/entry.c
+++ b/lib/entry.c
@@ -24,13 +24,13 @@ static void ctors(void)
{
for (funcp *location = (void *)&_init_array; location < (funcp *)&_init_array_end; location++) {
funcp func = *location;
- if (location != NULL)
+ if (func != NULL)
func();
}
for (funcp *location = (void *)&__CTOR_LIST__; location < (funcp *)&__CTOR_END__; location++) {
funcp func = *location;
- if (location != NULL)
+ if (func != NULL)
func();
}
}
@@ -39,13 +39,13 @@ static void dtors(void)
{
for (funcp *location = (void *)&__DTOR_LIST__; location < (funcp *)&__DTOR_END__; location++) {
funcp func = *location;
- if (location != NULL)
+ if (func != NULL)
func();
}
for (funcp *location = (void *)&_fini_array; location < (funcp *)&_fini_array_end; location++) {
funcp func = *location;
- if (location != NULL)
+ if (func != NULL)
func();
}
}