Bug 115890 - Assert when using tab to move between controls in the Navigator in the Sidebar
Summary: Assert when using tab to move between controls in the Navigator in the Sidebar
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
6.1.0.0.alpha0+
Hardware: All All
: medium normal
Assignee: Michael Stahl (CIB)
URL:
Whiteboard: target:6.2.0 target:6.1.0.2 target:6.0.6
Keywords: accessibility, haveBacktrace
Depends on:
Blocks: a11y Assert
  Show dependency treegraph
 
Reported: 2018-02-20 19:49 UTC by am_dxer
Modified: 2018-08-02 18:10 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments
Debug Log of the crash. (12.61 KB, text/x-log)
2018-02-20 19:52 UTC, am_dxer
Details
bt with debug symbols (2.08 KB, text/plain)
2018-02-20 23:11 UTC, Julien Nabet
Details

Note You need to log in before you can comment on or make changes to this bug.
Description am_dxer 2018-02-20 19:49:42 UTC
Description:
I am using the Orca screen reader. When moving between controls on the sidebar with the tab key, the program crashes.

Steps to Reproduce:
1. Open a new document.
2. Press Shift+f6 to navigate to the sidebar.
3. Press Down arrow to reach the Navigator and space to select it.
4. press Tab a few times and the program will crash.

Actual Results:  
The program crashed.

Expected Results:
Tab should have moved to the next control in the navigator.


Reproducible: Always


User Profile Reset: Yes



Additional Info:
Version: 6.1.0.0.alpha0+
Build ID: dc0cdf9396af7cd0d4517fac102a604b99834e68
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk2; 
TinderBox: Linux-rpm_deb-x86_64@70-TDF-dbg, Branch:master, Time: 2018-02-20_03:25:04
Locale: en-US (en_US.UTF-8); Calc: group


User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0
Comment 1 am_dxer 2018-02-20 19:52:51 UTC
Created attachment 140022 [details]
Debug Log of the crash.
Comment 2 V Stuart Foote 2018-02-20 20:28:54 UTC
Can not confirm on Windows 10 Ent 64-bit en-US with NVDA 2017-3 and
Version: 6.0.1.1 (x64)
Build ID: 60bfb1526849283ce2491346ed2aa51c465abfe6
CPU threads: 8; OS: Windows 10.0; UI render: GL; 
Locale: en-US (en_US); Calc: group

nor with current master
Version: 6.1.0.0.alpha0+ (x64)
Build ID: e1082e45361a92a31adedcc3ed0a35c704bca543
CPU threads: 8; OS: Windows 10.0; UI render: GL; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2018-02-15_23:24:06
Locale: en-US (en_US); Calc: group
Comment 3 am_dxer 2018-02-20 21:03:56 UTC
Introduced somewhere between
7d56128654457bfc859217c23a957d1712fd6e1c
and
48cf115778b29ab916dd884d0bfc
Comment 4 Julien Nabet 2018-02-20 21:04:08 UTC
On pc Debian x86-64 with master sources updated today + gtk2 rendering, I don't reproduce this.
Comment 5 am_dxer 2018-02-20 21:12:17 UTC
Do you have Orca enabled when testing on Debian? From looking at the trace, this looks to only occur when a11y is enabled.
Comment 6 Julien Nabet 2018-02-20 21:14:02 UTC
You're right, I hadn't tested it with Orca.
I'll give it a try later.
Comment 7 Julien Nabet 2018-02-20 23:11:39 UTC
Created attachment 140025 [details]
bt with debug symbols

I could reproduce the assertion.
It mustn't be confounded with a crash.
Comment 8 Julien Nabet 2018-02-20 23:12:42 UTC
Michael: the assert has been added with https://cgit.freedesktop.org/libreoffice/core/commit/?id=b673ddb7d7a7b09ad171af57acadb3e532030428, thought you might be interested in this one.
Comment 9 Julien Nabet 2018-02-20 23:26:07 UTC
I don't know why dynamic cast doesn't work since SwContent inherits from SwTypeNumber
(see https://opengrok.libreoffice.org/xref/core/sw/source/uibase/inc/swcont.hxx#70)

but this works:
assert(pEntry->GetUserData() == nullptr || static_cast<SwContent*>(pEntry->GetUserData()));
Comment 10 Commit Notification 2018-07-06 22:26:17 UTC
Michael Stahl committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=2986f4baa8bdef1f9ab9108240ea890075321be1

tdf#115890 sw: fix invalid cast in SwContentTree::GetEntryAltText()

It will be available in 6.2.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 11 Commit Notification 2018-07-07 22:20:59 UTC
Michael Stahl committed a patch related to this issue.
It has been pushed to "libreoffice-6-1":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=018b59833878afc6f1a4a2489e83235d508e2702&h=libreoffice-6-1

tdf#115890 sw: fix invalid cast in SwContentTree::GetEntryAltText()

It will be available in 6.1.0.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 12 Commit Notification 2018-07-08 22:46:29 UTC
Michael Stahl committed a patch related to this issue.
It has been pushed to "libreoffice-6-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=a900c91447897e725fc0cf674205eee633b326eb&h=libreoffice-6-0

tdf#115890 sw: fix invalid cast in SwContentTree::GetEntryAltText()

It will be available in 6.0.6.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 13 Michael Stahl (CIB) 2018-07-09 10:27:17 UTC
fixed on master
Comment 14 Alex ARNAUD 2018-08-02 18:10:23 UTC
I confirm the fix in 6.2.0.0.alpha0+
Build ID: d0a481d09e696f6d5a2a0d40a9d5c48cfca559bf

I've tested on Debian 9 "Stretch" with Orca master. I don't reproduce the crash described by am_dxer.

Best regards,
Alex.