From 4239c6015a9353bd75f6c61709935312312ec605 Mon Sep 17 00:00:00 2001 From: Kilian Kilger Date: Sun, 26 May 2024 10:41:12 +0200 Subject: fix division by zero in target_read_string() Under certain circumstances, a floating point exception in target_read_string() can happen when the type has been obtained by a call to stpy_lazy_string_elt_type(). In the latter function, a call to check_typedef() has been forgotten. This makes type->length = 0 in this case. (cherry picked from commit 8130c1a430c952f65b621aee2c801316a61fab14) --- gdb/python/py-lazy-string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/python/py-lazy-string.c b/gdb/python/py-lazy-string.c index 0b7f5c9..8779716 100644 --- a/gdb/python/py-lazy-string.c +++ b/gdb/python/py-lazy-string.c @@ -266,7 +266,7 @@ stpy_lazy_string_elt_type (lazy_string_object *lazy) { case TYPE_CODE_PTR: case TYPE_CODE_ARRAY: - return realtype->target_type (); + return check_typedef (realtype->target_type ()); default: /* This is done to preserve existing behaviour. PR 20769. E.g., gdb.parse_and_eval("my_int_variable").lazy_string().type. */ -- cgit v1.1