aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-style.c
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2025-10-08 11:53:10 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2025-10-08 14:57:57 -0400
commit4cab44595eed299ec196902a54710be2fd224083 (patch)
tree372d88a43eb76a9d3f8d233ac6d42cb8ac351a31 /gdb/python/py-style.c
parentc1950dcc04c07e713b708efcf1c6cc88eda60843 (diff)
downloadbinutils-4cab44595eed299ec196902a54710be2fd224083.zip
binutils-4cab44595eed299ec196902a54710be2fd224083.tar.gz
binutils-4cab44595eed299ec196902a54710be2fd224083.tar.bz2
gdb/python: cast to ui_file_style::intensity after validating value
When GDB is built with undefined behavior sanitizer, gdb.python/py-style.exp fails because of this: $ ./gdb -q -nx --data-directory=data-directory -ex "python filename_style = gdb.Style('filename')" -ex "python filename_style.intensity = -3" /home/simark/src/binutils-gdb/gdb/python/py-style.c:239:11: runtime error: load of value 4294967293, which is not a valid value for type 'intensity' Fix it by casting the value to ui_file_style::intensity only after validating the raw value. Change-Id: I38eb471a9cb3bfc3bb8b2c88afa76b8025e4e893 Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/python/py-style.c')
-rw-r--r--gdb/python/py-style.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/gdb/python/py-style.c b/gdb/python/py-style.c
index cf65e31..b10a45f 100644
--- a/gdb/python/py-style.c
+++ b/gdb/python/py-style.c
@@ -234,14 +234,12 @@ stylepy_init_from_style_name (PyObject *self, const char *style_name)
static std::optional<ui_file_style::intensity>
stylepy_long_to_intensity (long intensity_value)
{
- ui_file_style::intensity intensity
- = static_cast<ui_file_style::intensity> (intensity_value);
- switch (intensity)
+ switch (intensity_value)
{
case ui_file_style::NORMAL:
case ui_file_style::DIM:
case ui_file_style::BOLD:
- break;
+ return static_cast<ui_file_style::intensity> (intensity_value);
default:
PyErr_Format
@@ -249,8 +247,6 @@ stylepy_long_to_intensity (long intensity_value)
intensity_value);
return {};
}
-
- return intensity;
}
/* Initialise a gdb.Style object from a foreground and background