* [PATCH 1/2] Don't create _Complex type name if there is no target type name
[not found] <20201006154928.3298-1-ssbssa.ref@yahoo.de>
@ 2020-10-06 15:49 ` Hannes Domani
2020-10-06 15:49 ` [PATCH 2/2] Remove gdb_assert for TYPE_CODE_METHOD in stabs reader Hannes Domani
2020-10-22 17:21 ` [PATCH 1/2] Don't create _Complex type name if there is no target type name Tom Tromey
0 siblings, 2 replies; 7+ messages in thread
From: Hannes Domani @ 2020-10-06 15:49 UTC (permalink / raw)
To: gdb-patches
This causes gdb to crash in strlen.
Happens if init_complex_type is called for a type created by
dbx_init_float_type in stabsread.c.
gdb/ChangeLog:
2020-10-06 Hannes Domani <ssbssa@yahoo.de>
* gdbtypes.c (init_complex_type): Check target type name.
---
gdb/gdbtypes.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index b7c8ec8e64..a40ae5f30e 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -3283,7 +3283,7 @@ init_complex_type (const char *name, struct type *target_type)
if (TYPE_MAIN_TYPE (target_type)->flds_bnds.complex_type == nullptr)
{
- if (name == nullptr)
+ if (name == nullptr && target_type->name () != nullptr)
{
char *new_name
= (char *) TYPE_ALLOC (target_type,
--
2.27.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] Remove gdb_assert for TYPE_CODE_METHOD in stabs reader
2020-10-06 15:49 ` [PATCH 1/2] Don't create _Complex type name if there is no target type name Hannes Domani
@ 2020-10-06 15:49 ` Hannes Domani
2020-10-22 17:21 ` Tom Tromey
2020-10-22 17:21 ` [PATCH 1/2] Don't create _Complex type name if there is no target type name Tom Tromey
1 sibling, 1 reply; 7+ messages in thread
From: Hannes Domani @ 2020-10-06 15:49 UTC (permalink / raw)
To: gdb-patches
It's possible to come across TYPE_CODE_UNDEF at this point in
read_member_functions, which according to a comment in read_type
is used for forward references.
gdb/ChangeLog:
2020-10-06 Hannes Domani <ssbssa@yahoo.de>
* stabsread.c (read_member_functions): Remove gdb_assert.
---
gdb/stabsread.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index d2ff54a47b..a7f4ee0a8c 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -2331,9 +2331,6 @@ read_member_functions (struct stab_field_info *fip, const char **pp,
/* These are methods, not functions. */
if (new_sublist->fn_field.type->code () == TYPE_CODE_FUNC)
new_sublist->fn_field.type->set_code (TYPE_CODE_METHOD);
- else
- gdb_assert (new_sublist->fn_field.type->code ()
- == TYPE_CODE_METHOD);
/* If this is just a stub, then we don't have the real name here. */
if (TYPE_STUB (new_sublist->fn_field.type))
--
2.27.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] Don't create _Complex type name if there is no target type name
2020-10-06 15:49 ` [PATCH 1/2] Don't create _Complex type name if there is no target type name Hannes Domani
2020-10-06 15:49 ` [PATCH 2/2] Remove gdb_assert for TYPE_CODE_METHOD in stabs reader Hannes Domani
@ 2020-10-22 17:21 ` Tom Tromey
2020-10-22 17:40 ` Hannes Domani
1 sibling, 1 reply; 7+ messages in thread
From: Tom Tromey @ 2020-10-22 17:21 UTC (permalink / raw)
To: Hannes Domani via Gdb-patches
>>>>> "Hannes" == Hannes Domani via Gdb-patches <gdb-patches@sourceware.org> writes:
I didn't see a review of this.
Hannes> This causes gdb to crash in strlen.
Hannes> Happens if init_complex_type is called for a type created by
Hannes> dbx_init_float_type in stabsread.c.
Hannes> gdb/ChangeLog:
Hannes> 2020-10-06 Hannes Domani <ssbssa@yahoo.de>
Hannes> * gdbtypes.c (init_complex_type): Check target type name.
This is ok, thanks.
Tom
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] Remove gdb_assert for TYPE_CODE_METHOD in stabs reader
2020-10-06 15:49 ` [PATCH 2/2] Remove gdb_assert for TYPE_CODE_METHOD in stabs reader Hannes Domani
@ 2020-10-22 17:21 ` Tom Tromey
0 siblings, 0 replies; 7+ messages in thread
From: Tom Tromey @ 2020-10-22 17:21 UTC (permalink / raw)
To: Hannes Domani via Gdb-patches
>>>>> "Hannes" == Hannes Domani via Gdb-patches <gdb-patches@sourceware.org> writes:
Hannes> It's possible to come across TYPE_CODE_UNDEF at this point in
Hannes> read_member_functions, which according to a comment in read_type
Hannes> is used for forward references.
Hannes> gdb/ChangeLog:
Hannes> 2020-10-06 Hannes Domani <ssbssa@yahoo.de>
Hannes> * stabsread.c (read_member_functions): Remove gdb_assert.
Ok. Thanks for the patch.
Tom
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] Don't create _Complex type name if there is no target type name
2020-10-22 17:21 ` [PATCH 1/2] Don't create _Complex type name if there is no target type name Tom Tromey
@ 2020-10-22 17:40 ` Hannes Domani
2020-10-22 17:46 ` Tom Tromey
0 siblings, 1 reply; 7+ messages in thread
From: Hannes Domani @ 2020-10-22 17:40 UTC (permalink / raw)
To: Hannes Domani via Gdb-patches, Tom Tromey, Joel Brobecker
Am Donnerstag, 22. Oktober 2020, 19:21:43 MESZ hat Tom Tromey <tom@tromey.com> Folgendes geschrieben:
> >>>>> "Hannes" == Hannes Domani via Gdb-patches <gdb-patches@sourceware.org> writes:
>
> I didn't see a review of this.
>
> Hannes> This causes gdb to crash in strlen.
> Hannes> Happens if init_complex_type is called for a type created by
> Hannes> dbx_init_float_type in stabsread.c.
>
> Hannes> gdb/ChangeLog:
>
> Hannes> 2020-10-06 Hannes Domani <ssbssa@yahoo.de>
>
> Hannes> * gdbtypes.c (init_complex_type): Check target type name.
>
> This is ok, thanks.
Pushed both, thanks.
I'm not sure how relevant stabs nowadays is, but this crash is a regression
since gdb 9, and the fix is very simple, so maybe we should merge it to
gdb 10 as well?
Hannes
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] Don't create _Complex type name if there is no target type name
2020-10-22 17:40 ` Hannes Domani
@ 2020-10-22 17:46 ` Tom Tromey
2020-10-22 18:20 ` Hannes Domani
0 siblings, 1 reply; 7+ messages in thread
From: Tom Tromey @ 2020-10-22 17:46 UTC (permalink / raw)
To: Hannes Domani; +Cc: Hannes Domani via Gdb-patches, Tom Tromey, Joel Brobecker
Hannes> I'm not sure how relevant stabs nowadays is, but this crash is a regression
Hannes> since gdb 9, and the fix is very simple, so maybe we should merge it to
Hannes> gdb 10 as well?
I think it would be fine.
stabs should not generally be used.
I'm curious what you're using it for.
Tom
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] Don't create _Complex type name if there is no target type name
2020-10-22 17:46 ` Tom Tromey
@ 2020-10-22 18:20 ` Hannes Domani
0 siblings, 0 replies; 7+ messages in thread
From: Hannes Domani @ 2020-10-22 18:20 UTC (permalink / raw)
To: Tom Tromey; +Cc: Hannes Domani via Gdb-patches, Joel Brobecker
Am Donnerstag, 22. Oktober 2020, 19:46:21 MESZ hat Tom Tromey <tom@tromey.com> Folgendes geschrieben:
> Hannes> I'm not sure how relevant stabs nowadays is, but this crash is a regression
> Hannes> since gdb 9, and the fix is very simple, so maybe we should merge it to
> Hannes> gdb 10 as well?
>
> I think it would be fine.
I pushed this to gdb-10-branch as well, thanks.
> stabs should not generally be used.
> I'm curious what you're using it for.
At my workplace we still need it for long-term support of some older customer
servers.
Hannes
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-10-22 18:21 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20201006154928.3298-1-ssbssa.ref@yahoo.de>
2020-10-06 15:49 ` [PATCH 1/2] Don't create _Complex type name if there is no target type name Hannes Domani
2020-10-06 15:49 ` [PATCH 2/2] Remove gdb_assert for TYPE_CODE_METHOD in stabs reader Hannes Domani
2020-10-22 17:21 ` Tom Tromey
2020-10-22 17:21 ` [PATCH 1/2] Don't create _Complex type name if there is no target type name Tom Tromey
2020-10-22 17:40 ` Hannes Domani
2020-10-22 17:46 ` Tom Tromey
2020-10-22 18:20 ` Hannes Domani
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).