Microsoft patch breaks Impress/PowerPoint compatibility

Discuss the presentation application

Microsoft patch breaks Impress/PowerPoint compatibility

Postby Omar » Thu Dec 09, 2010 5:25 pm

The inability to open PowerPoint files in Microsoft Office 2007 that were created by Impress is due to a compatibility problem brought on by a recent Microsoft Office patch that was rolled out in mid November.

I'm in the midst of investigating the problem and have started pulling together the relevant documentation along with reports from various forums to try and come up with a solution or at least a work-around. The patch was created to fix the problems mentioned in Microsoft Security Bulletin MS10-087. I believe the relevant vulnerabilities were:
- PowerPoint Integer Underflow Causes Heap Corruption Vulnerability - CVE-2010-2573
- Office Art Drawing Records Vulnerability - CVE-2010-3334
- Drawing Exception Handling Vulnerability - CVE-2010-3335
- MSO Large SPID Read AV Vulnerability - CVE-2010-3336

The binary file formats commonly known as "Office 97 - 2003" were implemented by OpenOffice.org through reverse engineering and guess work. Thus the OOo implementation of the format may not have been perfect but it was good enough for Microsoft Office to recognize and read it. This latest patch from Microsoft changes how MSO parses those files in order to fix the vulnerabilities. The down side is that the change now means that some "97 - 2003" binary PowerPoint documents created by OOo are no longer considered valid by MSO. The vulnerabilities associated with the patch have not been publicly disclosed and were sent directly to Microsoft so I doubt any of the OOo developers have had a chance to look at what's changed.

We've performed testing and have confirmed that PowerPoint files created by OOo 3.2.1 under Solaris 10 could be opened by MSO 2007 under Windows XP before the patch was applied but after the patch was applied we would get the error "PowerPoint can't open ... because part of the file is missing." The ... just represents the name of the file you tried to open. The vulnerability and resulting patch exist for MSO XP, MSO 2003, MSO 2007, and MS 2010. We've taken the file that couldn't be opened by MSO 2007 under Windows XP and it was able to open properly by MSO 2003 under Windows 7. After our initial poking around, we believe the problem is somehow related to images or other artwork on master slides but haven't been able to narrow it down beyond that yet.

If you need to share files with a person running MSO 2003, there shouldn't be able problem as MSO 2003 can open up the PowerPoint files created by Impress. However if you need to share files with a person running MSO 2007, you have three options.
- Impress saves to .ppt then use a copy of MSO 2003 to re-save the file in order to make it readable by MSO 2007.
- Impress saves to .odp since MSO 2007 can read ODP files.
- Impress saves to .ppt then use the Microsoft Office 2007 PowerPoint Viewer to open and/or print the file. The viewer can be found at C:\Program Files\Microsoft Office\Office12\PPTVIEW.EXE

We're putting together a group of problem files to analyze, so send me a private message if you have files that have experienced this problem and would be willing to add your document to our collection. I plan to keep updating this thread as well as the one of OOoForum.org as I find out more information.
OOo 3.2.1 Solaris 10 / OOo 3.2.1 OS X
Omar
 
Posts: 4
Joined: Wed Dec 08, 2010 11:02 pm

Re: Microsoft patch breaks Impress/PowerPoint compatibility

Postby Hagar Delest » Thu Dec 09, 2010 6:40 pm

Thanks for that analysis!

Topic stickified.
AOO 4.1.4 on Xubuntu 17.10, (Artful Aardvark) and 4.1.3 on Windows 7 (with winPenPack port).
User avatar
Hagar Delest
Moderator
 
Posts: 27662
Joined: Sun Oct 07, 2007 9:07 pm
Location: France

Re: Microsoft patch breaks Impress/PowerPoint compatibility

Postby Villeroy » Thu Dec 09, 2010 9:46 pm

Thank you very much Omar,
I filed an issue http://qa.openoffice.org/issues/show_bug.cgi?id=116023 so the developers take notice.
Please, edit this topic's initial post and add "[Solved]" to the subject line if your problem has been solved.
Ubuntu 16.04, OpenOffice 4.x & LibreOffice 5.x
User avatar
Villeroy
Volunteer
 
Posts: 24666
Joined: Mon Oct 08, 2007 1:35 am
Location: Germany

Re: Microsoft patch breaks Impress/PowerPoint compatibility

Postby Omar » Fri Dec 10, 2010 4:04 am

After hacking away on our sample files I think I've found the root cause of the compatibility problem: Object Grouping.

I took a one-slide file that was giving us trouble and within MSO 2007 removed everything from the slide and changed the theme to the Office default. This produced as plain of a PowerPoint document as you can image. When opened by OOo, saved to PPT, then opened by MSO 2007, the file didn't give any errors. So the underlying document structure could process fine but some item within the document was causing the problem. I then went through deleting items one by one and going through the save, open, resave, open routine until the file started to open properly again. Ultimately I tracked it down to three items: two on the slide and one in the slide master. All of which turned out to be grouped objects. Ungrouping those objects and going through the save, open, resave, open routine resulted in a file that worked in MSO 2007.

To further test the theory I created a blank PPT file in MSO 2007 that contained two text boxes and a drawing box. When I did the resave routine with OOo, the file opened fine in MSO 2007. However when I grouped those three items in MSO 2007 then went through the resave routine with OOo, the file was corrupt according to MSO 2007.

So one of the workarounds is to ungroup EVERYTHING in your document. I've only tested making modifications within MSO 2007 so I haven't gotten a chance to try ungrouping the items in the document under OOo then resaving it that way. There's no keyboard shortcut under MSO 2007 or OOo 3.2.1 to do an ungroup so on each slide and slide master you'd have to hit CTRL-A to select all, then right click and choose Ungroup for the dialog box that pops up. This can be tedious, especially on larger documents so I looked through the ODF spec and found the relevant tag to remove if you want to do it in an automated fashion and have access to Perl. If you're on a Unix or OS X platform you can open a terminal window and run the following command to effectively do a bulk ungroup of an ODP file.

Code: Select all   Expand viewCollapse view
mkdir temp
cp MyFile.odp ./temp/
cd ./temp/
unzip MyFile.odp
rm MyFile.odp
perl -pi -e 's/\<draw:g\>//gi' content.xml
perl -pi -e 's/\<\/draw:g\>//gi' content.xml
zip -r MyFileUngrouped.odp ./


The commands above create a temporary directory, copy your ODP into that directory, uncompress it, delete the original file in the temp directory, remove the <draw:g> and </draw:g> text from the content.xml file, then recursively recompress that directory into a new .odp file. Deleting those start and end tags will removing the grouping while leaving the items within the grouping in-place. If you have access to an XML editor you may be tempted to simply delete the <draw:g> element, but that would delete all of the child nodes as well which contain the items you want to keep. Deleting the start tag and end tag just removes the wrapper which is what we want. If you load MyFileUngrouped.odp into OOo and save to a .ppt, it should now open properly in MSO 2007. You may need to run those two perl commands on styles.xml as well since I think the style file is also capable of containing items that could be grouped.

I'd still classify the manual or automatic ungrouping as a workaround and not a fix because you loose the ability to move multiple objects at once when the file is opened in MSO 2007. For those that have also been having corruption problems, please let me know if ungrouping everything in your document gets rid of the corruption. If so then we've nailed the problem and now it's a matter of figuring out why the grouped object implementation produced by OOo isn't compatible with MSO.
OOo 3.2.1 Solaris 10 / OOo 3.2.1 OS X
Omar
 
Posts: 4
Joined: Wed Dec 08, 2010 11:02 pm

Re: Microsoft patch breaks Impress/PowerPoint compatibility

Postby ceoparadigm » Sat Dec 18, 2010 12:12 am

5 Tips for Networking & Speaking.ppt
Here is a sample that shows as corrupted
(79.5 KiB) Downloaded 458 times
To add to other posts. I just found out that when I sent an Impress file (OO Version 3.2.1 on a Mac 10.5.8 )saved as PPT 97/2000/XP to a Windows PPT user that had a form of animation or timing in it, is shows on their end as corrupted. When they opened the file, all the slides that had animation or timing associated with them are blank but the rest are fine.
I hope this helps .
openOffice 3.2.1 on Mac 10.5.8
ceoparadigm
 
Posts: 1
Joined: Fri Dec 17, 2010 11:58 pm

Re: Microsoft patch breaks Impress/PowerPoint compatibility

Postby HTMLCrazy » Sat Jan 15, 2011 4:42 pm

THank you very much for this info. I will be using the commands a lot.
OpenOffice 3.2 on Linux Ubuntu 10.10

HTMLCrazy
User avatar
HTMLCrazy
 
Posts: 2
Joined: Sat Jan 15, 2011 3:44 pm

Re: Microsoft patch breaks Impress/PowerPoint compatibility

Postby simong99 » Thu Mar 03, 2011 9:04 pm

Many thanks for this. I did have to remove grouping in the styles.xml file too.
OpenOffice 3.2.0 on Fedora14-32bit
simong99
 
Posts: 1
Joined: Thu Mar 03, 2011 8:39 pm

Re: Microsoft patch breaks Impress/PowerPoint compatibility

Postby pja1701 » Thu Mar 24, 2011 9:59 pm

Hi,

I have had a similar problem with PowerPoint 2003; one particular Impress file saved in 97/2003 ppt format produced the errors above. There didn't appear to be any grouped objects in the Impress file. However, a different Impress presentation saved in .ppt format OK.
OpenOffice 3.2.1 Windows XP
pja1701
 
Posts: 1
Joined: Thu Mar 24, 2011 9:39 pm


Return to Impress

Who is online

Users browsing this forum: Google Feedfetcher and 6 guests