+2012-02-01 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/13482
+ * readelf.c (process_corefile_note_segment): Fix off-by-one errors
+ verifying the contents of a note.
+
2012-01-26 Nick Clifton <nickc@redhat.com>
PR binutils/13622
/* readelf.c -- display contents of an ELF format file
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010, 2011
+ 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Originally developed by Eric Youngdale <eric@andante.jic.com>
external = next;
/* Prevent out-of-bounds indexing. */
- if (inote.namedata + inote.namesz >= (char *) pnotes + length
+ if (inote.namedata + inote.namesz > (char *) pnotes + length
|| inote.namedata + inote.namesz < inote.namedata)
{
warn (_("corrupt note found at offset %lx into core notes\n"),
one version of Linux (RedHat 6.0) generates corefiles that don't
comply with the ELF spec by failing to include the null byte in
namesz. */
- if (inote.namedata[inote.namesz] != '\0')
+ if (inote.namedata[inote.namesz - 1] != '\0')
{
temp = (char *) malloc (inote.namesz + 1);
+2012-02-01 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/13482
+ * binutils-all/version.s: New test source file.
+ * binutils-all/readelf.n: New file: expected readelf output.
+ * binutils-all/readelf.exp: Add test of .note section contents.
For older changes see ChangeLog-0411
\f
-# Copyright 1999, 2000, 2001, 2003, 2004, 2007, 2009
+# Copyright 1999, 2000, 2001, 2003, 2004, 2007, 2009, 2012
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
readelf_compressed_wa_test
readelf_dump_test
+
+# PR 13482 - Check for off-by-one errors when dumping .note sections.
+if {![binutils_assemble $srcdir/$subdir/version.s tmpdir/version.o]} then {
+ perror "could not assemble version note test file"
+ unresolved "readelf - failed to assemble"
+ return
+}
+
+if ![is_remote host] {
+ set tempfile tmpdir/version.o
+} else {
+ set tempfile [remote_download host tmpdir/version.o]
+}
+
+readelf_test -n $tempfile readelf.n {}