Bug 140234 - Password protection doesn't work (Win 7 only)
Summary: Password protection doesn't work (Win 7 only)
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
7.2.0.0.alpha0+
Hardware: All All
: medium major
Assignee: Aron Budea
URL:
Whiteboard: target:7.2.0
Keywords: bibisected, bisected, regression
Depends on:
Blocks: Password-Protected
  Show dependency treegraph
 
Reported: 2021-02-07 10:38 UTC by Roman Kuznetsov
Modified: 2021-02-17 18:21 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Kuznetsov 2021-02-07 10:38:40 UTC
Description:
Password protection doesn't work in Calc

Steps to Reproduce:
1. Create a Calc spreadsheet with any data
2. Try save it with password protection (use "Save with password" checkbox in Save dialog. Set up a password
3. Try reopen your file => Calc doesn't ask a password! It just open the file!

Actual Results:
Password protection doesn't work in Calc

Expected Results:
Password protection works in Calc


Reproducible: Always


User Profile Reset: No



Additional Info:
Version: 7.2.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: ca074a47e8fdae396633dad6f59450508bb2c9f0
CPU threads: 4; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: ru-RU
Calc: CL

but it works fine in 7.1.0.3 => regression

I bisected it:

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((oldest))
$ git bisect start master oldest
Bisecting: 1125 revisions left to test after this (roughly 10 steps)
[12e4fedcc115f7c8eb5b53c022bfb52b626cf1a7] source 5edafb22331b7dbd2225be56a91bb2918471de68

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((12e4fedcc...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((12e4fedcc...)|BISECTING)
$ git bisect bad
Bisecting: 562 revisions left to test after this (roughly 9 steps)
[66dd71f53a9ae90eb2551b283a215b9e5c0e94ba] source bba0fa96e37f866bba871693bbc6363feb08ea3b

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((66dd71f53...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((66dd71f53...)|BISECTING)
$ git bisect bad
Bisecting: 280 revisions left to test after this (roughly 8 steps)
[60e9d867a33f809e51e8c0707fa3e283d5b060a0] source 2e93e2c83b3fba9d29783dc4cc9782e142d8a58f

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((60e9d867a...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((60e9d867a...)|BISECTING)
$ git bisect bad
Bisecting: 140 revisions left to test after this (roughly 7 steps)
[fa81d4a922e28d8fe0bf9a7a0c32841dad5a543e] source 810bb0a96afcc2764ffc62c419343e464a85013a

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((fa81d4a92...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((fa81d4a92...)|BISECTING)
$ git bisect good
Bisecting: 70 revisions left to test after this (roughly 6 steps)
[0563c3db43931377cf840800dc13098191d2fb91] source 86744f03992213af162df6954313c9f9e44e3a0a

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((0563c3db4...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((0563c3db4...)|BISECTING)
$ git bisect good
Bisecting: 35 revisions left to test after this (roughly 5 steps)
[a3794fb5b67c0d95c8c3dd9891d19a2a16e0d6a1] source b6d634d74c0231173d6b43357b7cd3cecb76407d

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((a3794fb5b...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((a3794fb5b...)|BISECTING)
$ git bisect bad
Bisecting: 17 revisions left to test after this (roughly 4 steps)
[4771a2b99dce7d7622ba9676a36ddc2f052fd43b] source 05e2e652934eea74e129a40aaa384ab3af39a388

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((4771a2b99...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((4771a2b99...)|BISECTING)
$ git bisect good
Bisecting: 8 revisions left to test after this (roughly 3 steps)
[ecb63d3286ea8b1e4bed150760ccc066607ba3a8] source 283124fcf07fe8e38417579ce6d94ecf56715ac1

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((ecb63d328...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((ecb63d328...)|BISECTING)
$ git bisect bad
Bisecting: 4 revisions left to test after this (roughly 2 steps)
[2305fdba0c4792d95f69a9c45a41bc818ab790f1] source 4713c19e2b79341dc27e66d4c6449497db1e73d8

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((2305fdba0...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((2305fdba0...)|BISECTING)
$ git bisect good
Bisecting: 2 revisions left to test after this (roughly 1 step)
[94850a8dd67672d9d8427d6900ebd4f07b396bc1] source 8578a1c9d167c19f1d8038fac5946b4b3cae305e

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((94850a8dd...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((94850a8dd...)|BISECTING)
$ git bisect good
Bisecting: 0 revisions left to test after this (roughly 1 step)
[b086509d5bf4758d2a8201a14328a4bb64c9db8c] source c12bc5757c021f8ba3f802b26805964a11aaa71d

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((b086509d5...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((b086509d5...)|BISECTING)
$ git bisect bad
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[6af194fd45b80c7feb2724a0d878229bbdaa5944] source f45ce257c9a9b2aea3fd939ce0ac326bee36acdd

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((6af194fd4...)|BISECTING)
$ instdir/program/soffice --calc

Домовой@▒▒▒▒▒▒▒-▒▒ MINGW64 /d/LO_bisect/bibisect-win64-7.2 ((6af194fd4...)|BISECTING)
$ git bisect bad 6af194fd45b80c7feb2724a0d878229bbdaa5944 is the first bad commit
commit 6af194fd45b80c7feb2724a0d878229bbdaa5944
Author: Norbert Thiebaud <nthiebaud@gmail.com>
Date:   Wed Dec 2 14:36:25 2020 -0800

    source f45ce257c9a9b2aea3fd939ce0ac326bee36acdd

https://gerrit.libreoffice.org/c/core/+/106711

https://git.libreoffice.org/core/commit/f45ce257c9a9b2aea3fd939ce0ac326bee36acdd

Added to CC: Miklosh Vajna
Comment 1 Xisco Faulí 2021-02-07 12:10:21 UTC Comment hidden (obsolete)
Comment 2 himajin100000 2021-02-07 13:44:44 UTC
NOT reproducible

Version: 7.2.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 3ed9bba283a6a67864c0928186e277240be0d9ba
CPU threads: 4; OS: Windows 10.0 Build 19041; UI render: default; VCL: win
Locale: ja-JP (ja_JP); UI: en-US
Calc: CL
Comment 3 Roman Kuznetsov 2021-02-07 14:26:20 UTC
(In reply to Xisco Faulí from comment #1)
> I can't reproduce it in
> 
> Version: 7.2.0.0.alpha0+ / LibreOffice Community
> Build ID: 40b56cd8da8c38582dc4660b486993d1b4711535
> CPU threads: 4; OS: Linux 5.7; UI render: default; VCL: gtk3
> Locale: en-US (en_US.UTF-8); UI: en-US
> Calc: threaded
> 
> nor with gen. Win only ?

May be Win 7 only even?
Comment 4 Aron Budea 2021-02-07 15:46:50 UTC
I can confirm on Windows 7, and have encountered likely the same issue recently when running unit tests, CppunitTest_services failed when trying to instantiate com.sun.star.security.CertificateContainer, because loading xmlsecurity.dll failed.

As far as I can see, the problem is with a call to LoadPackagedLibrary in libxmlsec, which only exists since Windows 8:
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-loadpackagedlibrary

The call is here:
https://github.com/lsh123/xmlsec/blob/21bbcb04b62352331a15a0b8463ebb27a9b858bc/src/dl.c#L160

And was added with the following commit:
https://github.com/lsh123/xmlsec/commit/3ecf7d2ad4fd8017cd803b98962872799def621a

Commenting out the added lines, and rebuilding xmlsec and LO fixes both the unit test failure, and the issue reported here.
Btw, not just Calc is affected, password protection of files doesn't work in the other apps, either.
Comment 5 Commit Notification 2021-02-15 09:19:43 UTC
Aron Budea committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/9b61c811e43991e61505d32776a59c03c00dc58a

tdf#140234: Fix xmlsec on Windows 7

It will be available in 7.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 6 Aron Budea 2021-02-15 11:37:19 UTC
Should be fine now, please retest with a daily build containing the fix.
Comment 7 Roman Kuznetsov 2021-02-17 18:21:25 UTC
verified in

Version: 7.2.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 2c8ffa41ec8e1ab2af95d5e033a445c17d29cf5a
CPU threads: 4; OS: Windows 6.1 Service Pack 1 Build 7601; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: ru-RU
Calc: CL Jumbo

Thanks for fix!