[Pkg-gnupg-commit] [gnupg2] 70/159: g10: Allow relative path for specifying the file for bkuptocard.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Wed Jan 27 13:23:55 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository gnupg2.
commit ee433d2b00c93b5a4e4ed54b9fb5806361df1b71
Author: NIIBE Yutaka <gniibe at fsij.org>
Date: Thu Dec 24 10:41:23 2015 +0900
g10: Allow relative path for specifying the file for bkuptocard.
* g10/keyedit.c (keyedit_menu): Assume the file is under GNUPGHOME.
Also support tilda expansion.
---
g10/keyedit.c | 44 +++++++++++++++++++++++++++-----------------
1 file changed, 27 insertions(+), 17 deletions(-)
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 15500ef..cfbbed7 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -1927,17 +1927,23 @@ keyedit_menu (ctrl_t ctrl, const char *username, strlist_t locusr,
backup key as generated by the card generation, parse
that key and store it on card. */
KBNODE node;
- const char *fname;
+ char *fname;
PACKET *pkt;
IOBUF a;
- fname = arg_string;
- if (!*fname)
+ if (!*arg_string)
{
tty_printf (_("Command expects a filename argument\n"));
break;
}
+ if (*arg_string == DIRSEP_C)
+ fname = xstrdup (arg_string);
+ else if (*arg_string == '~')
+ fname = make_filename (arg_string, NULL);
+ else
+ fname = make_filename (opt.homedir, arg_string, NULL);
+
/* Open that file. */
a = iobuf_open (fname);
if (a && is_secured_file (iobuf_get_fd (a)))
@@ -1946,12 +1952,13 @@ keyedit_menu (ctrl_t ctrl, const char *username, strlist_t locusr,
a = NULL;
gpg_err_set_errno (EPERM);
}
- if (!a)
- {
- tty_printf (_("Can't open '%s': %s\n"),
- fname, strerror (errno));
- break;
- }
+ if (!a)
+ {
+ tty_printf (_("Can't open '%s': %s\n"),
+ fname, strerror (errno));
+ xfree (fname);
+ break;
+ }
/* Parse and check that file. */
pkt = xmalloc (sizeof *pkt);
@@ -1962,14 +1969,17 @@ keyedit_menu (ctrl_t ctrl, const char *username, strlist_t locusr,
if (!err && pkt->pkttype != PKT_SECRET_KEY
&& pkt->pkttype != PKT_SECRET_SUBKEY)
err = GPG_ERR_NO_SECKEY;
- if (err)
- {
- tty_printf (_("Error reading backup key from '%s': %s\n"),
- fname, gpg_strerror (err));
- free_packet (pkt);
- xfree (pkt);
- break;
- }
+ if (err)
+ {
+ tty_printf (_("Error reading backup key from '%s': %s\n"),
+ fname, gpg_strerror (err));
+ xfree (fname);
+ free_packet (pkt);
+ xfree (pkt);
+ break;
+ }
+
+ xfree (fname);
node = new_kbnode (pkt);
if (cmd == cmdCHECKBKUPKEY)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list