Fix gpg-agent secure memory leak in OpenPGP private key import.
authorMarcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Wed, 20 Apr 2011 09:33:09 +0000 (11:33 +0200)
committerMarcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de>
Wed, 20 Apr 2011 09:33:09 +0000 (11:33 +0200)
2011-04-20  Marcus Brinkmann  <mb@g10code.com>

        * command.c (cmd_import_key): Release key from failed import
        before converting openpgp private key in the openpgp-private-key
        case.

agent/ChangeLog
agent/command.c

index e8570f7..e342b57 100644 (file)
@@ -1,3 +1,9 @@
+2011-04-20  Marcus Brinkmann  <mb@g10code.com>
+
+       * command.c (cmd_import_key): Release key from failed import
+        before converting openpgp private key in the openpgp-private-key
+        case.
+
 2011-04-17  Ben Kibbey <bjk@luxsci.net>
 
        * command.c (cmd_passwd): Check for an error before presetting.
index 9f45afb..34617ad 100644 (file)
@@ -1827,6 +1827,8 @@ cmd_import_key (assuan_context_t ctx, char *line)
          used to protect the key using the same code as for regular
          key import. */
 
+      xfree (key);
+      key = NULL;
       err = convert_from_openpgp (ctrl, openpgp_sexp, grip,
                                   ctrl->server_local->keydesc, cache_nonce,
                                   &key, &passphrase);