[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1 1/7] elf-ops: bail out if we have no function symbols

From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v1 1/7] elf-ops: bail out if we have no function symbols
Date: Fri, 27 Mar 2020 12:10:56 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0

On 3/27/20 11:53 AM, Philippe Mathieu-Daudé wrote:
On 3/27/20 10:49 AM, Alex Bennée wrote:
It's perfectly possible to have no function symbols in your elf file
and if we do the undefined behaviour sanitizer rightly complains about
us passing NULL to qsort. Check nsyms before we go ahead.

Signed-off-by: Alex Bennée <address@hidden>
  include/hw/elf_ops.h | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/include/hw/elf_ops.h b/include/hw/elf_ops.h
index a1411bfcab6..b5d4074d1e3 100644
--- a/include/hw/elf_ops.h
+++ b/include/hw/elf_ops.h
@@ -170,8 +170,13 @@ static int glue(load_symbols, SZ)(struct elfhdr *ehdr, int fd, int must_swab,
-    syms = g_realloc(syms, nsyms * sizeof(*syms));

Something was bugging me why looking at this line, now I remembered: another patch from 2 years ago :)


Is this the same emitted warning? It seems.

$ qemu-system-xtensa -M kc705 -m 128M -semihosting -nographic -monitor null -kernel Image.elf include/hw/elf_ops.h:179:5: runtime error: null pointer passed as argument 1, which is declared to never be null

If so, can you add it to the commit description?


+    /* check we have symbols left */
+    if (nsyms == 0) {
+        goto fail;
+    }
+    syms = g_realloc(syms, nsyms * sizeof(*syms));
      qsort(syms, nsyms, sizeof(*syms), glue(symcmp, SZ));
      for (i = 0; i < nsyms - 1; i++) {
          if (syms[i].st_size == 0) {

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]