Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jul 2013 01:04:17 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r253461 - head/contrib/binutils/binutils
Message-ID:  <201307190104.r6J14HNt042741@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Fri Jul 19 01:04:17 2013
New Revision: 253461
URL: http://svnweb.freebsd.org/changeset/base/253461

Log:
  Correct ELF note decoding for non-core files
  
  Requested by:	kib

Modified:
  head/contrib/binutils/binutils/readelf.c

Modified: head/contrib/binutils/binutils/readelf.c
==============================================================================
--- head/contrib/binutils/binutils/readelf.c	Fri Jul 19 00:12:41 2013	(r253460)
+++ head/contrib/binutils/binutils/readelf.c	Fri Jul 19 01:04:17 2013	(r253461)
@@ -9128,8 +9128,10 @@ get_note_type (unsigned e_type)
 }
 
 static const char *
-get_freebsd_elfcore_note_type (unsigned e_type)
+get_freebsd_note_type (unsigned e_type)
 {
+  static char buff[64];
+
   if (elf_header.e_type == ET_CORE)
     switch (e_type)
       {
@@ -9154,10 +9156,21 @@ get_freebsd_elfcore_note_type (unsigned 
       case NT_PROCSTAT_AUXV:
 	return _("NT_PROCSTAT_AUXV (auxv data)");
       default:
+	return get_note_type(e_type);
+      }
+  else
+    switch (e_type)
+      {
+      case NT_FREEBSD_ABI_TAG:
+	return _("NT_FREEBSD_ABI_TAG");
+      case NT_FREEBSD_NOINIT_TAG:
+	return _("NT_FREEBSD_NOINIT_TAG");
+      default:
 	break;
       }
 
-  return get_note_type(e_type);
+  snprintf (buff, sizeof(buff), _("Unknown note type: (0x%08x)"), e_type);
+  return buff;
 }
 
 static const char *
@@ -9239,7 +9252,7 @@ process_note (Elf_Internal_Note *pnote)
 
   else if (const_strneq (pnote->namedata, "FreeBSD"))
     /* FreeBSD-specific core file notes.  */
-    nt = get_freebsd_elfcore_note_type (pnote->type);
+    nt = get_freebsd_note_type (pnote->type);
 
   else if (const_strneq (pnote->namedata, "NetBSD-CORE"))
     /* NetBSD-specific core file notes.  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307190104.r6J14HNt042741>