Fix latent bug in set_is_exec_point_at

valgrind pointed out that the TUI was using uninitialized memory in
set_is_exec_point_at.  The bug is a missing check against LOA_ADDRESS,
causing gdb to examine the uninitialized bits of the "addr" field.

gdb/ChangeLog
2019-06-25  Tom Tromey  <tom@tromey.com>

	* tui/tui-winsource.c
	(tui_source_window_base::set_is_exec_point_at): Add check against
	LOA_ADDRESS.
This commit is contained in:
Tom Tromey
2019-06-23 16:07:12 -06:00
parent 17568d782d
commit f7952c5774
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2019-06-25 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.c
(tui_source_window_base::set_is_exec_point_at): Add check against
LOA_ADDRESS.
2019-06-25 Tom Tromey <tom@tromey.com>
* tui/tui-source.c (tui_set_source_content): Don't check before

View File

@ -365,7 +365,7 @@ tui_source_window_base::set_is_exec_point_at (struct tui_line_or_address l)
|| content_loa.loa == LOA_ADDRESS);
if (content_loa.loa == l.loa
&& ((l.loa == LOA_LINE && content_loa.u.line_no == l.u.line_no)
|| (content_loa.u.addr == l.u.addr)))
|| (l.loa == LOA_ADDRESS && content_loa.u.addr == l.u.addr)))
new_state = true;
else
new_state = false;