Bug 76201 - On RT file containing Hexagon shape gets corrupted.
Summary: On RT file containing Hexagon shape gets corrupted.
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
(earliest affected) Master
Hardware: Other All
: medium normal
Assignee: Not Assigned
Depends on:
Reported: 2014-03-15 11:29 UTC by Sourav
Modified: 2014-03-19 15:03 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:

Original File (15.38 KB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2014-03-15 11:29 UTC, Sourav
Original file (15.32 KB, application/vnd.openxmlformats-officedocument.wordprocessingml.document)
2014-03-15 12:10 UTC, Sourav

Note You need to log in before you can comment on or make changes to this bug.
Description Sourav 2014-03-15 11:29:56 UTC
Created attachment 95849 [details]
Original File

1)Launch LO and open the attched file.
2) Save file as docx
3)RT file gets corrupted.
Comment 1 Sourav 2014-03-15 12:10:07 UTC
Created attachment 95851 [details]
Original file
Comment 2 Jorendc 2014-03-15 13:25:38 UTC
Reproducible, tested using Mac OSX 10.9 with LibreOffice Version:
Build ID: 88955714d345d8584e86ae34bf5f5d1f3f4af9f7
TinderBox: MacOSX-x86@49-TDF, Branch:master, Time: 2014-03-15_04:16:49

Kind regards,
Comment 3 Sourav 2014-03-19 15:03:51 UTC
There are two issues that are handled in this fix.
  1)File created in MSO2K10 on RT gets corrupted.The root cause is found in CustomShapeProperties::pushToPropSet
  2)File created in MSO2K7 on RT gets corrupted.There is an issue in shape import <a:gd> values for any shape (ex. circular arrow, hexagon etc).LO cannot import right <a:gd> values for any shape  which is created in MSO-2007.Due to missing values of <a:gd> tag, after roundtrip the file gets corrupted.To avoid corruption a check introduced:-
    if(aAdjustments.size() == nLength)
    after http://opengrok.libreoffice.org/xref/core/oox/source/export/drawingml.cxx#1784
    that will verify the number of <a:gd> tags associated with the shape during import and the number of <a:gd> tags during export.If there is a mismatch <a:gd> willnot be written.Changes made in DrawingML::WritePresetShape.