incubator-ooo-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [Bug 120385] [Regression]Fail to load and save document with password
Date Mon, 06 Aug 2012 13:59:54 GMT

Andre <> changed:

           What    |Removed                     |Added
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #14 from Andre <> ---
This is a 64bit-only bug.

A recent change in ManifestImport::startElement modified the reading of
manifest properties for digest and encryption type in such a way, that they
where internally stored as C++ long values (wrapped in uno Anys).  In the UNO
API they are defined as IDL long values.  IDL long is defined to be always be a
signed 32 bit value.  For 32bit compilers (at least the ones we use for
OpenOffice) the two longs (C++ vs IDL) have the same length.  For 64bit
compilers C++ long has 64bits.
This leads to a problem when the values are later converted back into C++
variables, this time of type sal_Int32.  The conversion fails silently and the
default values (0 in this case) are used.  Zero is neither a valid encryption
nor digest type.  Therefore validation of the password fails.

The fix is simple.  Use type sal_Int32 to store the encryption and digest type
and everything works as before.

You are receiving this mail because:
You are the assignee for the bug.

View raw message