Bug 84809

Summary: EDITING:Draw/Presentation crashes if document contains a push button with small height
Product: LibreOffice Reporter: Alex <siyanko>
Component: DrawingAssignee: Caolán McNamara <caolanm>
Status: RESOLVED FIXED QA Contact:
Severity: blocker    
Priority: high CC: serval2412
Version: 4.3.2.2 releaseKeywords: have-backtrace
Hardware: x86-64 (AMD64)   
OS: All   
Whiteboard: BSA target:4.4.0 target:4.3.4
i915 platform: i915 features:
Attachments: console bt

Description Alex 2014-10-08 18:20:22 UTC
Problem description: 

If Draw/Presentation document contains a push button with height smaller then 0.26" the application crashes and enters infinite recovery loop. This can happen either after opening of an existing document (created in LO 4.2.x) or by creating new document in LO 4.3.x and drawing a "narrow" push button.
I've tried to reproduce this bug on several different Win7 and Win8 PCs. The bug appears to be stable. It first appeared in  the first 4.3 release is has not been fixed until now. I've discovered this problem after upgrading from LO 4.2.6 when it turned out that many of my UI sketches made in Draw would not open in LO 4.3.x. After a range of experiments with my files it boiled down to a push button issue.

Steps to reproduce:
1. Create new Draw Drawing;
2. Click "Push Button" button on the "Form Controls" toolbar;
3. Outline rectangle for the button to be added and make sure that the rectangle has small height (less then 0.26");
4. Draw will crash after releasing mouse button.

Current behavior: Program Crash

Expected behavior: Add "push button" element to a document.
Comment 1 Julien Nabet 2014-10-08 19:39:46 UTC
Created attachment 107581 [details]
console bt

On pc Debian x86-64 with master sources updated 3 days ago, I could reproduce this. I attached a bt.
Comment 2 Julien Nabet 2014-10-08 20:11:37 UTC
For some reason, nHeight is negative when the height of the push button is too low which gives nFormatLines < 0 and the crash

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.