[PATCH] Fix memory errors in SwWW8ImplReader

Miklos Vajna vmiklos at suse.cz
Mon Apr 2 07:07:35 PDT 2012


Hi Lubos,

On Mon, Apr 02, 2012 at 03:04:22PM +0200, Lubos Lunak <l.lunak at suse.cz> wrote:
>  You are right that reading of some of the sprm's is broken, but looking at 
> the first problem with the test document in Read_UL(), it is called with nId 
> = 0x246D, which is sprmPFContextualSpacing, and the .doc spec for that one 
> says it's 1 byte, while e.g. nId = 0xA413, sprmPDyaBefore, is 2 bytes 
> according to the spec. So as far as I understand it, somebody was a bit lazy 
> and lumped together two slightly different things, which should otherwise be 
> read differently, and the proper fix would be to always read the exact size 
> depending on the nId.

They are read in the same method, since they are all part of the same
SvxULSpaceItem.

> On the other hand, looking at the end of 
> WW8AttributeOutput::FormatULSpace(), we apparently do write 
> sprmPFContextualSpacing as 2 bytes, which seems wrong.

Both reading and writing of sprmPFContextualSpacing should be fixed with
http://cgit.freedesktop.org/libreoffice/core/commit/?id=36e176ee2354e62d5e4208fb0ae2a101ba32d7f5

Hope this helps. :)

Miklos


More information about the LibreOffice mailing list