| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
|
||
| int size1 = (int)(bw.BaseStream.Position - oc1.OffsetPS); | ||
|
|
||
| bw.Seek(oc1.OffsetPS + 4, System.IO.SeekOrigin.Begin); |
There was a problem hiding this comment.
This +4 was causing it to overwrite the property count rather than the size (I ended up with a size of 0 and >100 properties, which is just wrong)
Sorry, something went wrong.
| bw.Seek((int)oc1.PropertyIdentifierOffsets[i], System.IO.SeekOrigin.Begin); //Offset of 4 to Offset value | ||
| bw.Write(oc1.PropertyOffsets[i] - oc1.OffsetPS); | ||
| bw.Seek((int)oc1.PropertyIdentifierOffsets[i] + 4, System.IO.SeekOrigin.Begin); //Offset of 4 to Offset value | ||
| bw.Write((int)(oc1.PropertyOffsets[i] - oc1.OffsetPS)); |
There was a problem hiding this comment.
Changed this to match the case on lines 207/208, otherwise it was writing the offset in the wrong place, and also writing 8 bytes rather than 4
Sorry, something went wrong.
|
@Numpsy , do you have a test case to add as a unit test for this PR? Thanks! |
Sorry, something went wrong.
|
I've been working with a few unit tests locally, but it was a bit hard to do them for each PR because you need both this one and the dictionary ones to write all the required data. Thanks for merging the changes :-) |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
As per the Microsoft documentation at https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-oshared/fe59ffd9-79e9-44fb-a1c9-2466057b05c6 -
but the padding code was commented out?
When debugging an attempt at writing the user defined properties, I had a case where the size ended up at 299 bytes when it should really be padded up to 300, and I think this fixes that.
@@note@@ It might need additional padding adding to the end of the user defined section, but the documents I'm testing with are all ending up with the size a multiple of 4 with no padding, so I don't yet have a test for that case.