Rebase to the final 7.9 release.
This commit is contained in:
parent
e209b86292
commit
186e7e4733
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
/gdb-libstdc++-v3-python-r155978.tar.bz2
|
/gdb-libstdc++-v3-python-r155978.tar.bz2
|
||||||
/gdb-7.8.90.20150214.tar.xz
|
/gdb-7.9.tar.xz
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
http://sourceware.org/ml/gdb-patches/2015-01/msg00198.html
|
|
||||||
Subject: [PATCH] [PR corefiles/17808] i386: Fix internal error when prstatus in core file is too big
|
|
||||||
|
|
||||||
As reported in PR 17808, a test case with a forged (invalid) core file
|
|
||||||
can crash GDB with an assertion failure. In that particular case the
|
|
||||||
prstatus of an i386 core file looks like that from an AMD64 core file,
|
|
||||||
i.e., it is larger than GDB would expect.
|
|
||||||
|
|
||||||
The patch replaces the assertion by a warning and skips the invalid
|
|
||||||
core file register section. In this way it is guaranteed that no
|
|
||||||
bogus register values are read from the badly formatted section.
|
|
||||||
|
|
||||||
Note that this behavior deviates from the default policy: In general, if
|
|
||||||
some future kernel adds new registers to a register set, then a GDB
|
|
||||||
unaware of this extension would read the known subset and just ignore
|
|
||||||
the unknown bytes.
|
|
||||||
|
|
||||||
gdb/ChangeLog:
|
|
||||||
|
|
||||||
PR corefiles/17808
|
|
||||||
* i386-tdep.c (i386_supply_gregset): Instead of yielding an
|
|
||||||
internal error on unexpected input buffer size, ignore the data
|
|
||||||
and emit a warning.
|
|
||||||
|
|
||||||
---
|
|
||||||
gdb/i386-tdep.c | 7 ++++++-
|
|
||||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
|
|
||||||
index 7d174c4..d02aaf2 100644
|
|
||||||
--- a/gdb/i386-tdep.c
|
|
||||||
+++ b/gdb/i386-tdep.c
|
|
||||||
@@ -3727,7 +3727,12 @@ i386_supply_gregset (const struct regset *regset, struct regcache *regcache,
|
|
||||||
const gdb_byte *regs = gregs;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
- gdb_assert (len == tdep->sizeof_gregset);
|
|
||||||
+ if (len != tdep->sizeof_gregset)
|
|
||||||
+ {
|
|
||||||
+ /* Buffer has unknown size: assume wrong format. */
|
|
||||||
+ warning (_("Bad size of general register section"));
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
for (i = 0; i < tdep->gregset_num_regs; i++)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
1.7.9.5
|
|
||||||
|
|
15
gdb.spec
15
gdb.spec
@ -22,17 +22,17 @@ Name: %{?scl_prefix}gdb
|
|||||||
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
# See timestamp of source gnulib installed into gdb/gnulib/ .
|
||||||
%global snapgnulib 20121213
|
%global snapgnulib 20121213
|
||||||
%global tarname gdb-%{version}
|
%global tarname gdb-%{version}
|
||||||
Version: 7.8.90.20150214
|
Version: 7.9
|
||||||
|
|
||||||
# The release always contains a leading reserved number, start it at 1.
|
# The release always contains a leading reserved number, start it at 1.
|
||||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||||
Release: 9%{?dist}
|
Release: 10%{?dist}
|
||||||
|
|
||||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
|
||||||
Group: Development/Debuggers
|
Group: Development/Debuggers
|
||||||
# Do not provide URL for snapshots as the file lasts there only for 2 days.
|
# Do not provide URL for snapshots as the file lasts there only for 2 days.
|
||||||
# ftp://sourceware.org/pub/gdb/releases/gdb-%{version}.tar.xz
|
# ftp://sourceware.org/pub/gdb/releases/%{tarname}.tar.xz
|
||||||
Source: %{tarname}.tar.xz
|
Source: ftp://sourceware.org/pub/gdb/releases/%{tarname}.tar.xz
|
||||||
Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||||
URL: http://gnu.org/software/gdb/
|
URL: http://gnu.org/software/gdb/
|
||||||
|
|
||||||
@ -526,9 +526,6 @@ Patch927: gdb-python-gil.patch
|
|||||||
# Fix jit-reader.h for multi-lib.
|
# Fix jit-reader.h for multi-lib.
|
||||||
Patch978: gdb-jit-reader-multilib.patch
|
Patch978: gdb-jit-reader-multilib.patch
|
||||||
|
|
||||||
# Fix gdb-7.9pre regressions / new FAILs.
|
|
||||||
Patch979: gdb-6.8-bz457187-largefile-test-regression-fix.patch
|
|
||||||
|
|
||||||
# Temporarily disable dg-extract-results.py to fix gdb.sum sorting.
|
# Temporarily disable dg-extract-results.py to fix gdb.sum sorting.
|
||||||
Patch982: gdb-no-dg-extract-results-py.patch
|
Patch982: gdb-no-dg-extract-results-py.patch
|
||||||
|
|
||||||
@ -824,7 +821,6 @@ find -name "*.info*"|xargs rm -f
|
|||||||
%patch925 -p1
|
%patch925 -p1
|
||||||
%patch927 -p1
|
%patch927 -p1
|
||||||
%patch978 -p1
|
%patch978 -p1
|
||||||
%patch979 -p1
|
|
||||||
%patch982 -p1
|
%patch982 -p1
|
||||||
%patch984 -p1
|
%patch984 -p1
|
||||||
%patch985 -p1
|
%patch985 -p1
|
||||||
@ -1324,6 +1320,9 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Feb 22 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.9-10.fc22
|
||||||
|
- Rebase to the final 7.9 release.
|
||||||
|
|
||||||
* Sun Feb 22 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.8.90.20150202-9.fc22
|
* Sun Feb 22 2015 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.8.90.20150202-9.fc22
|
||||||
- Change Require->Recommends for gcc-gdb-plugin (RH BZ 1195005).
|
- Change Require->Recommends for gcc-gdb-plugin (RH BZ 1195005).
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user