[PATCH setup 0/3] Fix "extrakeys" issues

Ken Brown kbrown@cornell.edu
Tue Nov 28 14:56:00 GMT 2017

The "extrakeys" user setting contains saved extra gpg keys.  It was
introduced in 2009 to replace the use of a file
/etc/setup/last-extrakeys.  It has apparently never worked right.
Here are the issues I've found:

 - User settings are read and written as NUL-terminated strings, but
   extra keys are terminated by LF instead.  On writing, this causes
   garbage to be written into setup.rc.  On reading, this causes the
   final saved key to be discarded.

 - The ExtraKeysSetting constructor calls count_keys() without setting
   bufsize to a positive value.  This causes *all* saved keys to be

 - Saved keys contain several '#' characters.  These are treated as
   comment characters in setup.rc, so that all keys are truncated when

 - There are still references to the "last-extrakeys" file in comments
   and in a help string.

This patch series attempts to fix all these problems.  In the case of
'#', the fix is to treat '#' as a comment character only if it's the
first non-whitespace character on a line.  I don't think this will
cause problems for any existing uses of '#', but I haven't done a
thorough check of this yet.

Ken Brown (3):
  Fix the reading and writing of the "extrakeys" user setting
  Change the interpretation of '#' in setup.rc
  Remove references to "last-extrakeys"

 KeysSetting.cc  | 9 ++++++++-
 KeysSetting.h   | 2 +-
 UserSettings.cc | 8 ++++----
 crypto.cc       | 8 ++++----
 4 files changed, 17 insertions(+), 10 deletions(-)


More information about the Cygwin-apps mailing list