[PATCH v2] m68k: fix SUPPORT_LD_DEBUG null pointer access
Fix null pointer access in case SUPPORT_LD_DEBUG configuration option is enabled (hit in _dl_do_reloc, but fix same old_val/reloc_addr usage pattern in _dl_do_lazy_reloc too). Reported-by: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org> Link: https://mailman.openadk.org/mailman3/hyperkitty/list/devel@uclibc-ng.org/thr... Signed-off-by: Peter Seiderer <ps.report@gmx.net> --- Changes v1 -> v2: - fix same old_val/reloc_addr usage pattern in _dl_do_lazy_reloc too - reword commit message --- ldso/ldso/m68k/elfinterp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ldso/ldso/m68k/elfinterp.c b/ldso/ldso/m68k/elfinterp.c index 25ea23067..e7fa117da 100644 --- a/ldso/ldso/m68k/elfinterp.c +++ b/ldso/ldso/m68k/elfinterp.c @@ -193,7 +193,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope, #endif #if defined (__SUPPORT_LD_DEBUG__) - old_val = *reloc_addr; + old_val = reloc_addr ? *reloc_addr : 0; #endif switch (reloc_type) { @@ -292,7 +292,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope, reloc_type = ELF_R_TYPE(rpnt->r_info); #if defined (__SUPPORT_LD_DEBUG__) - old_val = *reloc_addr; + old_val = reloc_addr ? *reloc_addr : 0; #endif switch (reloc_type) { -- 2.48.1
Hi Peter, On 20/02/2025 13:18, Peter Seiderer wrote:
Fix null pointer access in case SUPPORT_LD_DEBUG configuration option is enabled (hit in _dl_do_reloc, but fix same old_val/reloc_addr usage pattern in _dl_do_lazy_reloc too).
Reported-by: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org> Link: https://mailman.openadk.org/mailman3/hyperkitty/list/devel@uclibc-ng.org/thr... Signed-off-by: Peter Seiderer <ps.report@gmx.net> --- Changes v1 -> v2: - fix same old_val/reloc_addr usage pattern in _dl_do_lazy_reloc too - reword commit message
You can take my reviewed/tested-by, it works fine too :-). Thanks ! JM
--- ldso/ldso/m68k/elfinterp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ldso/ldso/m68k/elfinterp.c b/ldso/ldso/m68k/elfinterp.c index 25ea23067..e7fa117da 100644 --- a/ldso/ldso/m68k/elfinterp.c +++ b/ldso/ldso/m68k/elfinterp.c @@ -193,7 +193,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope, #endif
#if defined (__SUPPORT_LD_DEBUG__) - old_val = *reloc_addr; + old_val = reloc_addr ? *reloc_addr : 0; #endif
switch (reloc_type) { @@ -292,7 +292,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope, reloc_type = ELF_R_TYPE(rpnt->r_info);
#if defined (__SUPPORT_LD_DEBUG__) - old_val = *reloc_addr; + old_val = reloc_addr ? *reloc_addr : 0; #endif
switch (reloc_type) {
Hi Peter, thanks you very much. Applied and pushed. best regards Waldemar Peter Seiderer wrote,
Fix null pointer access in case SUPPORT_LD_DEBUG configuration option is enabled (hit in _dl_do_reloc, but fix same old_val/reloc_addr usage pattern in _dl_do_lazy_reloc too).
Reported-by: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org> Link: https://mailman.openadk.org/mailman3/hyperkitty/list/devel@uclibc-ng.org/thr... Signed-off-by: Peter Seiderer <ps.report@gmx.net> --- Changes v1 -> v2: - fix same old_val/reloc_addr usage pattern in _dl_do_lazy_reloc too - reword commit message --- ldso/ldso/m68k/elfinterp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ldso/ldso/m68k/elfinterp.c b/ldso/ldso/m68k/elfinterp.c index 25ea23067..e7fa117da 100644 --- a/ldso/ldso/m68k/elfinterp.c +++ b/ldso/ldso/m68k/elfinterp.c @@ -193,7 +193,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope, #endif
#if defined (__SUPPORT_LD_DEBUG__) - old_val = *reloc_addr; + old_val = reloc_addr ? *reloc_addr : 0; #endif
switch (reloc_type) { @@ -292,7 +292,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope, reloc_type = ELF_R_TYPE(rpnt->r_info);
#if defined (__SUPPORT_LD_DEBUG__) - old_val = *reloc_addr; + old_val = reloc_addr ? *reloc_addr : 0; #endif
switch (reloc_type) { -- 2.48.1
participants (3)
-
Jean-Michel Hautbois -
Peter Seiderer -
Waldemar Brodkorb