1 |
From be3004dc350a820a5b0320b34bd05673ba534058 Mon Sep 17 00:00:00 2001 |
2 |
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4> |
3 |
Date: Thu, 31 Mar 2016 17:20:53 +0000 |
4 |
Subject: [PATCH] * cplus-dem.c (squangle_mop_up): Zero bsize/ksize |
5 |
after freeing btypevec/ktypevec. * testsuite/demangle-expected: Add |
6 |
coverage tests. |
7 |
|
8 |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234645 138bc75d-0d04-0410-961f-82ee72b054a4 |
9 |
--- |
10 |
libiberty/ChangeLog | 7 +++++++ |
11 |
libiberty/cplus-dem.c | 2 ++ |
12 |
libiberty/testsuite/demangle-expected | 10 ++++++++++ |
13 |
3 files changed, 19 insertions(+) |
14 |
|
15 |
#diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog |
16 |
#index d11f4ce..b4054bd 100644 |
17 |
#--- a/libiberty/ChangeLog |
18 |
#+++ b/libiberty/ChangeLog |
19 |
#@@ -1,3 +1,10 @@ |
20 |
#+2016-03-31 Mikhail Maltsev <maltsevm@gmail.com> |
21 |
#+ Marcel Bohme boehme.marcel@gmail.com |
22 |
#+ |
23 |
#+ * cplus-dem.c (squangle_mop_up): Zero bsize/ksize after freeing |
24 |
#+ btypevec/ktypevec. |
25 |
#+ * testsuite/demangle-expected: Add coverage tests. |
26 |
#+ |
27 |
# 2016-01-27 Iain Buclaw <ibuclaw@gdcproject.org> |
28 |
# |
29 |
# * d-demangle.c (dlang_call_convention): Handle extern Objective-C |
30 |
Index: gdb-7.11.1/libiberty/cplus-dem.c |
31 |
=================================================================== |
32 |
--- gdb-7.11.1.orig/libiberty/cplus-dem.c 2017-06-08 07:52:55.737197785 -0400 |
33 |
+++ gdb-7.11.1/libiberty/cplus-dem.c 2017-06-08 07:52:55.721197580 -0400 |
34 |
@@ -1244,11 +1244,13 @@ squangle_mop_up (struct work_stuff *work |
35 |
{ |
36 |
free ((char *) work -> btypevec); |
37 |
work->btypevec = NULL; |
38 |
+ work->bsize = 0; |
39 |
} |
40 |
if (work -> ktypevec != NULL) |
41 |
{ |
42 |
free ((char *) work -> ktypevec); |
43 |
work->ktypevec = NULL; |
44 |
+ work->ksize = 0; |
45 |
} |
46 |
} |
47 |
|
48 |
Index: gdb-7.11.1/libiberty/testsuite/demangle-expected |
49 |
=================================================================== |
50 |
--- gdb-7.11.1.orig/libiberty/testsuite/demangle-expected 2017-06-08 07:52:55.737197785 -0400 |
51 |
+++ gdb-7.11.1/libiberty/testsuite/demangle-expected 2017-06-08 07:52:55.725197631 -0400 |
52 |
@@ -4421,3 +4421,13 @@ void baz<int>(A<sizeof (foo((int)(), (fl |
53 |
_QueueNotification_QueueController__$4PPPPPPPM_A_INotice___Z |
54 |
_QueueNotification_QueueController__$4PPPPPPPM_A_INotice___Z |
55 |
_QueueNotification_QueueController__$4PPPPPPPM_A_INotice___Z |
56 |
+# |
57 |
+# Tests a use-after-free problem |
58 |
+ |
59 |
+_Q.__0 |
60 |
+::Q.(void) |
61 |
+# |
62 |
+# Tests a use-after-free problem |
63 |
+ |
64 |
+_Q10-__9cafebabe. |
65 |
+cafebabe.::-(void) |