Fix long-standing bug of admin-less mode. GnuPG should be fixed.
authorNIIBE Yutaka <gniibe@fsij.org>
Sun, 26 Nov 2017 12:20:46 +0000 (21:20 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Sun, 26 Nov 2017 12:20:46 +0000 (21:20 +0900)
ChangeLog
src/openpgp.c

index 957376e..29b1d83 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-11-26  NIIBE Yutaka  <gniibe@fsij.org>
+
+       * src/openpgp.c (cmd_change_password): Bug fix for admin-less
+       mode.
+
 2017-11-26  NIIBE Yutaka  <gniibe@fsij.org>
 
        * VERSION: 1.2.7.
index 9ceed84..af79904 100644 (file)
@@ -429,7 +429,11 @@ cmd_change_password (void)
       gpg_do_write_simple (NR_DO_KEYSTRING_PW1, new_ks0, KS_META_SIZE);
       ac_reset_pso_cds ();
       ac_reset_other ();
-      if (admin_authorized == BY_USER)
+      /* When it was already admin-less mode, admin_authorized is
+       * BY_USER.  If no PW3 keystring, it's becoming admin-less mode,
+       * now.  For these two cases, we need to reset admin
+       * authorization status.  */
+      if (admin_authorized == BY_USER || ks_pw3 == NULL)
        ac_reset_admin ();
       DEBUG_INFO ("Changed length of DO_KEYSTRING_PW1.\r\n");
       GPG_SUCCESS ();