From: Kilian Kilger Date: Sun, 26 May 2024 08:41:12 +0000 (+0200) Subject: fix division by zero in target_read_string() X-Git-Tag: binutils-2_43~447 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8130c1a430c952f65b621aee2c801316a61fab14;p=thirdparty%2Fbinutils-gdb.git 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. --- diff --git a/gdb/python/py-lazy-string.c b/gdb/python/py-lazy-string.c index 0b7f5c9d680..8779716c4b9 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. */