Bug mot de passe bibliotheque de macro

Bonjour,

Il semble qu'il y ait un problème avec le mot de passe de la bibliothèque de macro quand on utilise l'instruction ThisComponent.store avec LibreOffice.

Test fait avec LibreOffice 4.0.5 et OpenOffice 4.0.0:

- je crée un nouveau document calc Doc avec OpenOffice

- je crée dans Doc une bibliothèque de macros Bib et, dans le Module 1 de cette bibliothèque, la macro suivante:

Sub Quitter

ThisComponent.store
On Error Resume Next
ThisComponent.Close(True)
On Error Goto 0

End Sub

- j'affecte un mot de passe simple (toto) à la bibliothèque Bib

- je ferme Doc

- je rouvre Doc, toujours sous OpenOffice, et j'exécute la macro Quitter (qui enregistre et ferme le Doc)

- je rouvre Doc, toujours sous OpenOffice, et accède sans problème à Bib (le mot de passe est accepté)

- je ferme Doc

- j'ouvre Doc avec LibreOffice, je vérifie que j'accède bien Bib avec le mot de passe

- je ferme Doc

- je rouvre Doc avec LibreOffice et j'exécute la macro Quitter (qui enregistre et ferme le Doc)

- quand je rouvre Doc avec LibreOffice, je n'accède plus à Bib avec le mot de passe

- quand je rouvre Doc avec OpenOffice, je n'accède plus non plus à Bib avec le mot de passe.

J'ai fait le test plusieurs fois. Cela ne semble pas systématique (mais je ne suis pas sûr de toujours effectuer les fermetures/réouverture entre chaque étape à chaque test) mais cela se produit suffisamment souvent pour que je n'ai pas de doute sur le fait qu'il y a un problème.

S'il était possible d'identifier le problème et d'y remédier, cela me permettrait peut-être de récupérer les milliers de lignes de code auxquelles je n'accède plus...

Cordialement,

Pascal

Bonjour Pascal,

Bonjour,

Il semble qu'il y ait un problème avec le mot de passe de la
bibliothèque de macro quand on utilise l'instruction ThisComponent.store
avec LibreOffice.

[...]

S'il était possible d'identifier le problème et d'y remédier, cela me
permettrait peut-être de récupérer les milliers de lignes de code
auxquelles je n'accède plus...

Je ne connais pas grand-chose aux macros de LibreOffice mais peut-être
devrais tu regarder dans le l'archive elle-même :
1/ renomme ton fichier en .zip
2/ ouvre cette archive avec ton dézippeur préféré
3/ explore ce dossier tu devrais y trouver ta bibliothèque de macros

Bon courage.
JBF

Bonjour Pascal,

Bonjour,

Il semble qu'il y ait un problème avec le mot de passe de la
bibliothèque de macro quand on utilise l'instruction ThisComponent.store
avec LibreOffice.

[...]

S'il était possible d'identifier le problème et d'y remédier, cela me
permettrait peut-être de récupérer les milliers de lignes de code
auxquelles je n'accède plus...

Je ne connais pas grand-chose aux macros de LibreOffice mais peut-être
devrais tu regarder dans le l'archive elle-même :
1/ renomme ton fichier en .zip
2/ ouvre cette archive avec ton dézippeur préféré
3/ explore ce dossier tu devrais y trouver ta bibliothèque de macros

Bon courage.
JBF

J'ai déjà essayé. Les modules de la bibliothèques y sont bien, mais
illisibles.

Aie ! Et est-ce que tu as une version privée sans mot de passe ou un
copie de sauvegarde qui n'a pas fait l'aller-retour OOo <--> LibreOffice ?

Une idée en passant : est-ce que par hasard ta macro d'enregistrement
n'aurait pas l'idée bizarre d'enregistrer avec un mot de passe vide ?

PS : pour que ta réponse parvienne à la liste il faut choisir répondre à
la liste dans ton logiciel de courrier. En effet les listes LO sont
configurées pour répondre par défaut à l'émetteur du message.

Bonne journée
JBF

Bonjour

Jean-Baptiste Faure wrote

peut-être devrais tu regarder dans le l'archive elle-même :
1/ renomme ton fichier en .zip
2/ ouvre cette archive avec ton dézippeur préféré
3/ explore ce dossier tu devrais y trouver ta bibliothèque de macros

Si la bibliothèque est protégée le module ne devrait pas être lisible...

Je viens de faire quelques essais et je ne reproduis qu'en partie
dans la mesure où la macro reste toujours accessible dans
LibreOffice.

Autrement dit, je reproduis le message "mot de passe incorrect"
si j'essaie d'accéder à la macro dans OOo (test avec OOo 3.2.1) mais
je n'ai aucun problème si j'accède via LibreOffice.

Ceci permet le contournement suivant: enregistrer *depuis
LibreOffice* le classeur au format OOo 1.0 (.sxc) génère un
document accessible par les deux logiciels.

Je n'ai reproduit la corruption "totale" (mot de passe incorrect
également dans LibreOffice) que si je tente de modifier puis
réenregistrer le classeur "posant problème" *depuis OOo*.

Cela m'a permis de détecter un autre bug plus étonnant
car "LibreOffice only":

1. Ouvrir le document joint "DocInit.ods"

DocInit.ods <http://nabble.documentfoundation.org/file/n4072917/DocInit.ods>

Ce document comprend ta macro dans une bibliothèque
Bib, protégée par mot de passe "toto". Ne pas tenter
d'exécuter ou éditer cette macro (autrement dit, ne
pas provoquer la demande de mot de passe qui
"vérifierait" ce dernier). Autrement dit... juste ouvrir
le document.

2. Fichier> Enregistrer sous> donner un autre nom
(Test par exemple) et garder le format par défaut
(classeur ODF de libreoffice).

3. Outils> Macros> Gérer les macros> LibreOffice Basic
Double cliquer sur Test.ods pour faire apparaître Bib
puis double clic sur Bib pour provoquer la demande de
mot de passe (toto) : erreur "mot de passe incorrect".

Pour vérification :

4. Rouvrir le document joint "DocInit.ods"
5. Outils> Macros> Gérer les macros> LibreOffice Basic
Double cliquer pour faire apparaître Bib puis double clic
sur Bib pour provoquer la demande de mot de passe (toto) :
la bibliothèque est déprotégée, chargée (l'icône du dossier
dans le "treeview" passe au jaune) et le module Module1 est
éditable.

Conclusion: "enregistrer sous" un document comprenant
une librairie protégée sans avoir "vérifié" le mot de passe
(méthode verifyLibraryPassword) corrompt ce dernier.

Je n'ai pas trouvé d'Issue pour ces dysfonctionnements.
Je vais essayer de les créer aujourd'hui...

Cordialement
Pierre-Yves

Bonjour Pascal,

Bonjour,

Il semble qu'il y ait un problème avec le mot de passe de la
bibliothèque de macro quand on utilise l'instruction ThisComponent.store
avec LibreOffice.

[...]

S'il était possible d'identifier le problème et d'y remédier, cela me
permettrait peut-être de récupérer les milliers de lignes de code
auxquelles je n'accède plus...

Je ne connais pas grand-chose aux macros de LibreOffice mais peut-être
devrais tu regarder dans le l'archive elle-même :
1/ renomme ton fichier en .zip
2/ ouvre cette archive avec ton dézippeur préféré
3/ explore ce dossier tu devrais y trouver ta bibliothèque de macros

Bon courage.
JBF

J'ai déjà essayé. Les modules de la bibliothèques y sont bien, mais
illisibles.

Aie ! Et est-ce que tu as une version privée sans mot de passe ou un
copie de sauvegarde qui n'a pas fait l'aller-retour OOo <--> LibreOffice ?

Malheureusement non, pas de version à jour.

Une idée en passant : est-ce que par hasard ta macro d'enregistrement
n'aurait pas l'idée bizarre d'enregistrer avec un mot de passe vide ?

Je ne pense pas puisque quand je veux accéder aux macros on me demande un mot de passe que je ne peux pas valider s'il est vide.

PS : pour que ta réponse parvienne à la liste il faut choisir répondre à
la liste dans ton logiciel de courrier. En effet les listes LO sont
configurées pour répondre par défaut à l'émetteur du message.

Oups! Effectivement.

Bonne journée
JBF

Toi aussi. Et merci pour tes réponses.

Bonjour

Jean-Baptiste Faure wrote

  peut-être devrais tu regarder dans le l'archive elle-même :
1/ renomme ton fichier en .zip
2/ ouvre cette archive avec ton dézippeur préféré
3/ explore ce dossier tu devrais y trouver ta bibliothèque de macros

Si la bibliothèque est protégée le module ne devrait pas être lisible...

Je viens de faire quelques essais et je ne reproduis qu'en partie
dans la mesure où la macro reste toujours accessible dans
LibreOffice.

Après avoir saisi la macro dans l'EDI, as-tu bien fermé puis réouvert le document avant d'exécuter la macro?
Si la bibliothèque est déverrouillée (en particulier si elle est ouverte dans l'EDI), le dysfonctionnement ne se produit pas.

Autrement dit, je reproduis le message "mot de passe incorrect"
si j'essaie d'accéder à la macro dans OOo (test avec OOo 3.2.1) mais
je n'ai aucun problème si j'accède via LibreOffice.

Quelle version de LO ?
On est d'accord que "accéder" à la macro veut dire l'éditer? Pour l'exécuter je n'ai aucun problème.

Ceci permet le contournement suivant: enregistrer *depuis
LibreOffice* le classeur au format OOo 1.0 (.sxc) génère un
document accessible par les deux logiciels.

Chez moi ça ne marche pas. J'ai toujours mot de passe incorrect avec le .sxc, sous LO comme sous OO.

Je n'ai reproduit la corruption "totale" (mot de passe incorrect
également dans LibreOffice) que si je tente de modifier puis
réenregistrer le classeur "posant problème" *depuis OOo*.

Cela m'a permis de détecter un autre bug plus étonnant
car "LibreOffice only":

1. Ouvrir le document joint "DocInit.ods"

DocInit.ods <http://nabble.documentfoundation.org/file/n4072917/DocInit.ods>

Ce document comprend ta macro dans une bibliothèque
Bib, protégée par mot de passe "toto". Ne pas tenter
d'exécuter ou éditer cette macro (autrement dit, ne
pas provoquer la demande de mot de passe qui
"vérifierait" ce dernier). Autrement dit... juste ouvrir
le document.

(exécuter la macro de provoque pas la demande de mot de passe)

2. Fichier> Enregistrer sous> donner un autre nom
(Test par exemple) et garder le format par défaut
(classeur ODF de libreoffice).

3. Outils> Macros> Gérer les macros> LibreOffice Basic
Double cliquer sur Test.ods pour faire apparaître Bib
puis double clic sur Bib pour provoquer la demande de
mot de passe (toto) : erreur "mot de passe incorrect".

Pour vérification :

4. Rouvrir le document joint "DocInit.ods"
5. Outils> Macros> Gérer les macros> LibreOffice Basic
Double cliquer pour faire apparaître Bib puis double clic
sur Bib pour provoquer la demande de mot de passe (toto) :
la bibliothèque est déprotégée, chargée (l'icône du dossier
dans le "treeview" passe au jaune) et le module Module1 est
éditable.

Conclusion: "enregistrer sous" un document comprenant
une librairie protégée sans avoir "vérifié" le mot de passe
(méthode verifyLibraryPassword) corrompt ce dernier.

Cela pourrait bien être lié à ce que je constate. Moi aussi le bug ne se produit que si le mot de passe de macro n'a pas été donné depuis l'ouverture du document.

Je n'ai pas trouvé d'Issue pour ces dysfonctionnements.
Je vais essayer de les créer aujourd'hui...

Cordialement
Pierre-Yves

Merci pour ta réponse.

A+

Pascal

Re-bonjour

USE Pascal Chantriaux wrote

(exécuter la macro de provoque pas la demande de mot de passe)

J'ai oublié de préciser que je n'utilise jamais Outils> Macros> Exécuter
mais Outils> Macros> Gérer qui permet tout (exécuter, gérer, organiser...)
et s'affiche instantanément vs Exécuter qui est plus long au premier
affichage. En revanche, dans le cas d'une librairie protégée le mot de
passe doit être vérifié :slight_smile:

J'ai créé aussi une issue pour le bug "enregistrer sous" en indiquant
le lien vraisemblable entre les deux Issues:

https://bugs.freedesktop.org/show_bug.cgi?id=68983

Cordialement
Pierre-Yves

Merci pour tout.
Je croise les doigts...
A+
Pascal