From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 46596 invoked by alias); 25 Jun 2019 14:03:47 -0000 Mailing-List: contact gdb-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: , Sender: gdb-cvs-owner@sourceware.org List-Subscribe: Sender: gdb-cvs-owner@sourceware.org Received: (qmail 46567 invoked by uid 306); 25 Jun 2019 14:03:47 -0000 Date: Tue, 25 Jun 2019 14:03:00 -0000 Message-ID: <20190625140347.46566.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Fix latent bug in set_is_exec_point_at X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: 17568d782d96434537fe9698c5ebcb09f35c20cb X-Git-Newrev: f7952c5774671414d9e0e8d3524c2921daa6f28e X-SW-Source: 2019-06/txt/msg00200.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f7952c5774671414d9e0e8d3524c2921daa6f28e commit f7952c5774671414d9e0e8d3524c2921daa6f28e Author: Tom Tromey Date: Sun Jun 23 16:07:12 2019 -0600 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 * tui/tui-winsource.c (tui_source_window_base::set_is_exec_point_at): Add check against LOA_ADDRESS. Diff: --- gdb/ChangeLog | 6 ++++++ gdb/tui/tui-winsource.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9898bcd..43ed9bc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2019-06-25 Tom Tromey + * tui/tui-winsource.c + (tui_source_window_base::set_is_exec_point_at): Add check against + LOA_ADDRESS. + +2019-06-25 Tom Tromey + * tui/tui-source.c (tui_set_source_content): Don't check before xfree. * tui/tui-disasm.c (tui_disassemble): Don't check before xfree. diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index 93c6253..6ec1f1b 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -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;