Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On 11/04/2016 08:12 AM, Patrick Brunschwig wrote: You have to use a Mozilla-API function in Thunderbird. The function allows to specify that a directory name should be unique - but you have to actually use the parameter to obtain a unique directory ... Right, so ... shouldn't you be doing that as a matter of course? Predictable temp file and directory names are a programming security error we squashed in the 90's. :) Doug ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On 04.11.16 09:05, Doug Barton wrote: > On 10/31/2016 12:09 AM, Patrick Brunschwig wrote: >> On 30.10.16 20:10, Daniel Kahn Gillmor wrote: Do you see any exception in the Thunderbird console? >>> >>> Ah, good call, sorry i didn't look there first. When i open the key >>> manager dialog box, i get a small warning that i think is irrelevant to >>> this concern [0]. >>> >>> Then when i try to do the import, i see the following error: >>> >>> Timestamp: 10/30/2016 01:44:08 PM >>> Error: NS_ERROR_FILE_ALREADY_EXISTS: Component returned failure >>> code: 0x80520008 (NS_ERROR_FILE_ALREADY_EXISTS) [nsIFile.create] >>> Source File: resource://enigmail/files.jsm >>> Line: 263 >>> >>> That's createTempSubDir, presumably with dirName="enigmail_import". >>> Sure enough, i have $TMPDIR/enigmail_import already (probably leftovers >>> From a previous attempt that failed due to the arglist). >> >> Indeed. It's obviously not ideal to assume that a temp directory does >> not exist. I'll fix this. > > Are you not using something equivalent to mktemp? You have to use a Mozilla-API function in Thunderbird. The function allows to specify that a directory name should be unique - but you have to actually use the parameter to obtain a unique directory ... -Patrick signature.asc Description: OpenPGP digital signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On 10/31/2016 12:09 AM, Patrick Brunschwig wrote: On 30.10.16 20:10, Daniel Kahn Gillmor wrote: Do you see any exception in the Thunderbird console? Ah, good call, sorry i didn't look there first. When i open the key manager dialog box, i get a small warning that i think is irrelevant to this concern [0]. Then when i try to do the import, i see the following error: Timestamp: 10/30/2016 01:44:08 PM Error: NS_ERROR_FILE_ALREADY_EXISTS: Component returned failure code: 0x80520008 (NS_ERROR_FILE_ALREADY_EXISTS) [nsIFile.create] Source File: resource://enigmail/files.jsm Line: 263 That's createTempSubDir, presumably with dirName="enigmail_import". Sure enough, i have $TMPDIR/enigmail_import already (probably leftovers From a previous attempt that failed due to the arglist). Indeed. It's obviously not ideal to assume that a temp directory does not exist. I'll fix this. Are you not using something equivalent to mktemp? Doug ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On 30.10.16 20:10, Daniel Kahn Gillmor wrote: >> Do you see any exception in the Thunderbird console? > > Ah, good call, sorry i didn't look there first. When i open the key > manager dialog box, i get a small warning that i think is irrelevant to > this concern [0]. > > Then when i try to do the import, i see the following error: > > Timestamp: 10/30/2016 01:44:08 PM > Error: NS_ERROR_FILE_ALREADY_EXISTS: Component returned failure code: > 0x80520008 (NS_ERROR_FILE_ALREADY_EXISTS) [nsIFile.create] > Source File: resource://enigmail/files.jsm > Line: 263 > > That's createTempSubDir, presumably with dirName="enigmail_import". > Sure enough, i have $TMPDIR/enigmail_import already (probably leftovers > From a previous attempt that failed due to the arglist). Indeed. It's obviously not ideal to assume that a temp directory does not exist. I'll fix this. -Patrick signature.asc Description: OpenPGP digital signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On Sat 2016-10-29 10:49:23 -0400, Patrick Brunschwig wrote: > On 29.10.16 16:26, Daniel Kahn Gillmor wrote: >> On Sat 2016-10-29 05:09:12 -0400, Patrick Brunschwig wrote: >>> The problem is that there is no output on stderr, even though >>> --status-fd 2 is specified. I added --no-verbose because "verbose" >>> options in gpg.conf make gpg ignore --status-fd 2. Apparently there is >>> something more in your gpg.conf file with the same result. >> >> I think that the command that we're talking about is: >> >>/usr/bin/gpg --charset utf-8 --display-charset utf-8 --use-agent --batch >> --no-tty --status-fd 2 --no-verbose --list-packets >> >> Is that right? > > Right, this can't be the problem. > > The difference between your log file: > > 2016-10-28 14:35:35.523 [DEBUG] execution.jsm: > EnigmailExecution.fixExitCode: agentType: gpg exitCode: 0 statusFlags > undefined > 2016-10-28 14:35:35.523 [CONSOLE] > 2016-10-28 14:35:41.812 [DEBUG] enigmailMessengerOverlay.js: > updateOptionsDisplay: > > and mine: > > 2016-10-29 16:44:30.301 [DEBUG] execution.jsm: > EnigmailExecution.fixExitCode: agentType: gpg exitCode: 0 statusFlags > undefined > 2016-10-29 16:44:30.301 [CONSOLE] > 2016-10-29 16:44:30.302 execution.jsm: EnigmailExecution.execCmd: > subprocess = '/usr/local/bin/gpg2' > 2016-10-29 16:44:30.302 [CONSOLE] enigmail> /usr/local/bin/gpg2 > --charset utf-8 --display-charset utf-8 --use-agent --batch --no-tty > --status-fd 2 --import --trustdb > /Users/pbr/Library/Caches/TemporaryItems/enigmail_import/trustdb > --no-default-keyring --keyring > /Users/pbr/Library/Caches/TemporaryItems/enigmail_import/keyring > > Do you see any exception in the Thunderbird console? Ah, good call, sorry i didn't look there first. When i open the key manager dialog box, i get a small warning that i think is irrelevant to this concern [0]. Then when i try to do the import, i see the following error: Timestamp: 10/30/2016 01:44:08 PM Error: NS_ERROR_FILE_ALREADY_EXISTS: Component returned failure code: 0x80520008 (NS_ERROR_FILE_ALREADY_EXISTS) [nsIFile.create] Source File: resource://enigmail/files.jsm Line: 263 That's createTempSubDir, presumably with dirName="enigmail_import". Sure enough, i have $TMPDIR/enigmail_import already (probably leftovers From a previous attempt that failed due to the arglist). If i "mv $TMPDIR/enigmail_import{,.bak}" then try the import again, it succeeds as expected. [1] So: is it possible to use a dynamically-named temporary directory? using $TMPDIR/enigmail_import seems prone to failure -- and for people sharing a mode 1777 /tmp as $TMPDIR, it looks like one person could block all other people on a given machine from doing imports. (the same is likely also true for "$TMPDIR/enig-imp" and "$TMPDIR/enig-exp"). On a POSIX platform, i'd recommend mkstemp() -- but i don't know what the equivalent is for enigmail's platform. --dkg [0] The warning is: Timestamp: 10/30/2016 01:43:25 PM Warning: XUL box for a element contained an inline #text child, forcing all its children to be wrapped in a block. Source File: chrome://enigmail/content/enigmailKeyManager.xul Line: 0 I suspect this can be fixed with: --- a/ui/content/enigmailKeyManager.xul +++ b/ui/content/enigmailKeyManager.xul @@ -454,8 +454,7 @@ - + [1] As another digression, after success, i get the following warning on the console: Timestamp: 10/30/2016 01:53:20 PM Warning: Expected ':' but found ';'. Declaration dropped. Source File: chrome://enigmail/content/enigmailKeyImportInfo.xul Line: 0, Column: 5 Source Code: plain;white-space: pre -^ I think this can be fixed with the following (based on similar elements in ui/content/keyDetailsDlg.xul): --- a/ui/content/enigmailKeyImportInfo.xul +++ b/ui/content/enigmailKeyImportInfo.xul @@ -31,7 +31,7 @@ - + signature.asc Description: PGP signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On 29.10.16 16:26, Daniel Kahn Gillmor wrote: > On Sat 2016-10-29 05:09:12 -0400, Patrick Brunschwig wrote: >> The problem is that there is no output on stderr, even though >> --status-fd 2 is specified. I added --no-verbose because "verbose" >> options in gpg.conf make gpg ignore --status-fd 2. Apparently there is >> something more in your gpg.conf file with the same result. > > I think that the command that we're talking about is: > >/usr/bin/gpg --charset utf-8 --display-charset utf-8 --use-agent --batch > --no-tty --status-fd 2 --no-verbose --list-packets > > Is that right? Right, this can't be the problem. The difference between your log file: 2016-10-28 14:35:35.523 [DEBUG] execution.jsm: EnigmailExecution.fixExitCode: agentType: gpg exitCode: 0 statusFlags undefined 2016-10-28 14:35:35.523 [CONSOLE] 2016-10-28 14:35:41.812 [DEBUG] enigmailMessengerOverlay.js: updateOptionsDisplay: and mine: 2016-10-29 16:44:30.301 [DEBUG] execution.jsm: EnigmailExecution.fixExitCode: agentType: gpg exitCode: 0 statusFlags undefined 2016-10-29 16:44:30.301 [CONSOLE] 2016-10-29 16:44:30.302 execution.jsm: EnigmailExecution.execCmd: subprocess = '/usr/local/bin/gpg2' 2016-10-29 16:44:30.302 [CONSOLE] enigmail> /usr/local/bin/gpg2 --charset utf-8 --display-charset utf-8 --use-agent --batch --no-tty --status-fd 2 --import --trustdb /Users/pbr/Library/Caches/TemporaryItems/enigmail_import/trustdb --no-default-keyring --keyring /Users/pbr/Library/Caches/TemporaryItems/enigmail_import/keyring Do you see any exception in the Thunderbird console? -Patrick signature.asc Description: OpenPGP digital signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On Sat 2016-10-29 05:09:12 -0400, Patrick Brunschwig wrote: > The problem is that there is no output on stderr, even though > --status-fd 2 is specified. I added --no-verbose because "verbose" > options in gpg.conf make gpg ignore --status-fd 2. Apparently there is > something more in your gpg.conf file with the same result. I think that the command that we're talking about is: /usr/bin/gpg --charset utf-8 --display-charset utf-8 --use-agent --batch --no-tty --status-fd 2 --no-verbose --list-packets Is that right? if so, when i run that with foo.asc on stdin, i don't see *anything* on fd 2 anyway, even when run from a clean home directory with an empty gpg.conf. What are you expecting to see on the status-fd from --list-packets? --dkg signature.asc Description: PGP signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On Fri 2016-10-28 12:57:34 -0400, Patrick Brunschwig wrote: > On 28.10.16 18:42, Daniel Kahn Gillmor wrote: >> On Fri 2016-10-28 12:10:34 -0400, Ludwig Hügelschäfer wrote: >> >>> Just tested: enigmail-1.9-branch imports a key from file as well as >>> master here. >> >> What version of GnuPG were you using to test? I'm using 2.1.15-8 (on >> debian testing/unstable). > > Importing works fine for me with GnuPG 2.1.15 (on Mac OS X). > > Can you send me the debug log file? Below is the section of the debug log that appears when doing "Key Manager Dialog | File | Import Keys from File…". The file i pointed it at is the same foo.asc as earlier in the thread. let me know if you need anything else. --dkg -- 2016-10-28 14:34:59.428 [DEBUG] enigmailCommon.jsm: filePicker: true 2016-10-28 14:35:21.652 [DEBUG] enigmailMessengerOverlay.js: updateOptionsDisplay: 2016-10-28 14:35:21.652 [DEBUG] funcs.jsm: collapseAdvanced: 2016-10-28 14:35:24.246 [DEBUG] enigmailCommon.js: EnigInitCommon: id=enigmailKeyManager 2016-10-28 14:35:24.267 [DEBUG] enigmailKeyManager.js: enigmailKeyManagerLoad 2016-10-28 14:35:24.269 [DEBUG] enigmailCommon.jsm: dispatchEvent f=loadkeyList 2016-10-28 14:35:24.370 [DEBUG] enigmailCommon.jsm: dispatchEvent got notified 2016-10-28 14:35:24.370 [DEBUG] enigmailKeyManager.js: loadkeyList 2016-10-28 14:35:24.370 [DEBUG] enigmailKeyManager.js: enigmailBuildList 2016-10-28 14:35:31.226 [DEBUG] enigmailCommon.jsm: filePicker: false 2016-10-28 14:35:35.464 execution.jsm: EnigmailExecution.execCmd: subprocess = '/usr/bin/gpg' 2016-10-28 14:35:35.464 [CONSOLE] enigmail> /usr/bin/gpg --charset utf-8 --display-charset utf-8 --use-agent --batch --no-tty --status-fd 2 --no-verbose --list-packets 2016-10-28 14:35:35.522 [DEBUG] enigmail> DONE 2016-10-28 14:35:35.522 [DEBUG] execution.jsm: EnigmailExecution.execCmd: exitCode = 0 2016-10-28 14:35:35.522 [DEBUG] execution.jsm: EnigmailExecution.execCmd: errOutput = 2016-10-28 14:35:35.522 [DEBUG] errorHandling.jsm: parseErrorOutputWith: status message: 2016-10-28 14:35:35.523 [DEBUG] system.jsm: determineSystemCharset 2016-10-28 14:35:35.523 [DEBUG] system.jsm: determineSystemCharset: charset='iso-8859-1' 2016-10-28 14:35:35.523 [DEBUG] errorHandling.jsm: parseErrorOutputWith: statusFlags = 2016-10-28 14:35:35.523 [DEBUG] errorHandling.jsm: parseErrorOutputWith: return with c.errorMsg = 2016-10-28 14:35:35.523 [DEBUG] execution.jsm: EnigmailExecution.fixExitCode: agentType: gpg exitCode: 0 statusFlags undefined 2016-10-28 14:35:35.523 [CONSOLE] 2016-10-28 14:35:41.812 [DEBUG] enigmailMessengerOverlay.js: updateOptionsDisplay: 2016-10-28 14:35:41.813 [DEBUG] funcs.jsm: collapseAdvanced: 2016-10-28 14:35:43.644 [DEBUG] enigmailMessengerOverlay.js: updateOptionsDisplay: 2016-10-28 14:35:43.644 [DEBUG] funcs.jsm: collapseAdvanced: 2016-10-28 14:35:44.456 [DEBUG] enigmailHelp.js: enigLoadPage 2016-10-28 14:35:44.456 [DEBUG] enigmailCommon.jsm: getFrame: name=contentFrame -- signature.asc Description: PGP signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On 28.10.16 18:42, Daniel Kahn Gillmor wrote: > On Fri 2016-10-28 12:10:34 -0400, Ludwig Hügelschäfer wrote: > >> Just tested: enigmail-1.9-branch imports a key from file as well as >> master here. > > What version of GnuPG were you using to test? I'm using 2.1.15-8 (on > debian testing/unstable). Importing works fine for me with GnuPG 2.1.15 (on Mac OS X). Can you send me the debug log file? -Patrick signature.asc Description: OpenPGP digital signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On Fri 2016-10-28 12:10:34 -0400, Ludwig Hügelschäfer wrote: > Just tested: enigmail-1.9-branch imports a key from file as well as > master here. What version of GnuPG were you using to test? I'm using 2.1.15-8 (on debian testing/unstable). --dkg ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On 27.10.16 21:00, Ludwig Hügelschäfer wrote: > Hi, > > On 27.10.16 20:13, Daniel Kahn Gillmor wrote: > >> Any suggestions for what to debug next? > > I suppose there's nothing related in the Thunderbird error console, > right? Enigmail master runs an import from file flawlessly. I'll compare > master and enigmail-1.9-branch. Just tested: enigmail-1.9-branch imports a key from file as well as master here. Ludwig signature.asc Description: OpenPGP digital signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
I'll try the branch tomorrow and see what went wrong with the merge. I think my patch from master was just broken ... Patrick - Originale Nachricht - Von: Daniel Kahn Gillmor <d...@fifthhorseman.net> Gesendet: 27.10.2016 - 20:13 An: enigmail-users@enigmail.net Betreff: Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct > On Thu 2016-10-27 12:13:56 -0400, Daniel Kahn Gillmor wrote: >> args is a list of distinct options, not a comma-separated string. > > Even with this patch applied, i find that running enigmail-1.9-branch, i > can't import a key from a file. > > Take as an example the attached file. > > From the key management dialog box, i choose "File | Import Keys from > File", and then point the chooser at foo.asc. > > The debug log shows: > > 2016-10-27 12:11:47.275 [DEBUG] enigmailCommon.jsm: filePicker: false > 2016-10-27 12:11:49.589 execution.jsm: EnigmailExecution.execCmd: > subprocess = '/usr/bin/gpg' > 2016-10-27 12:11:49.589 [CONSOLE] enigmail> /usr/bin/gpg --charset utf-8 > --display-charset utf-8 --use-agent --batch --no-tty --status-fd 2 > --no-verbose --list-packets > 2016-10-27 12:11:49.638 [DEBUG] enigmail> DONE > 2016-10-27 12:11:49.638 [DEBUG] execution.jsm: > EnigmailExecution.execCmd: exitCode = 0 > 2016-10-27 12:11:49.638 [DEBUG] execution.jsm: > EnigmailExecution.execCmd: errOutput = > 2016-10-27 12:11:49.638 [DEBUG] errorHandling.jsm: parseErrorOutputWith: > status message: > > 2016-10-27 12:11:49.639 [DEBUG] system.jsm: determineSystemCharset > 2016-10-27 12:11:49.639 [DEBUG] system.jsm: determineSystemCharset: > charset='iso-8859-1' > 2016-10-27 12:11:49.639 [DEBUG] errorHandling.jsm: parseErrorOutputWith: > statusFlags = > 2016-10-27 12:11:49.639 [DEBUG] errorHandling.jsm: parseErrorOutputWith: > return with c.errorMsg = > 2016-10-27 12:11:49.639 [DEBUG] execution.jsm: > EnigmailExecution.fixExitCode: agentType: gpg exitCode: 0 statusFlags > undefined > 2016-10-27 12:11:49.639 [CONSOLE] > > But then nothing actually gets imported, and no error messages appear. > > Any suggestions for what to debug next? > > --dkg > > ___ > enigmail-users mailing list > enigmail-users@enigmail.net > To unsubscribe or make changes to your subscription click here: > https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
Hi, On 27.10.16 20:13, Daniel Kahn Gillmor wrote: > Any suggestions for what to debug next? I suppose there's nothing related in the Thunderbird error console, right? Enigmail master runs an import from file flawlessly. I'll compare master and enigmail-1.9-branch. Ludwig signature.asc Description: OpenPGP digital signature ___ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net
Re: [Enigmail] [ENIGMAIL-1.9-BRANCH PATCH] keep options distinct
On Thu 2016-10-27 12:13:56 -0400, Daniel Kahn Gillmor wrote: > args is a list of distinct options, not a comma-separated string. Even with this patch applied, i find that running enigmail-1.9-branch, i can't import a key from a file. Take as an example the attached file. From the key management dialog box, i choose "File | Import Keys from File", and then point the chooser at foo.asc. The debug log shows: 2016-10-27 12:11:47.275 [DEBUG] enigmailCommon.jsm: filePicker: false 2016-10-27 12:11:49.589 execution.jsm: EnigmailExecution.execCmd: subprocess = '/usr/bin/gpg' 2016-10-27 12:11:49.589 [CONSOLE] enigmail> /usr/bin/gpg --charset utf-8 --display-charset utf-8 --use-agent --batch --no-tty --status-fd 2 --no-verbose --list-packets 2016-10-27 12:11:49.638 [DEBUG] enigmail> DONE 2016-10-27 12:11:49.638 [DEBUG] execution.jsm: EnigmailExecution.execCmd: exitCode = 0 2016-10-27 12:11:49.638 [DEBUG] execution.jsm: EnigmailExecution.execCmd: errOutput = 2016-10-27 12:11:49.638 [DEBUG] errorHandling.jsm: parseErrorOutputWith: status message: 2016-10-27 12:11:49.639 [DEBUG] system.jsm: determineSystemCharset 2016-10-27 12:11:49.639 [DEBUG] system.jsm: determineSystemCharset: charset='iso-8859-1' 2016-10-27 12:11:49.639 [DEBUG] errorHandling.jsm: parseErrorOutputWith: statusFlags = 2016-10-27 12:11:49.639 [DEBUG] errorHandling.jsm: parseErrorOutputWith: return with c.errorMsg = 2016-10-27 12:11:49.639 [DEBUG] execution.jsm: EnigmailExecution.fixExitCode: agentType: gpg exitCode: 0 statusFlags undefined 2016-10-27 12:11:49.639 [CONSOLE] But then nothing actually gets imported, and no error messages appear. Any suggestions for what to debug next? --dkg -BEGIN PGP PUBLIC KEY BLOCK- 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