aboutsummaryrefslogtreecommitdiffstats
path: root/g13/sh-cmd.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-02-02 17:18:31 +0000
committerWerner Koch <[email protected]>2016-02-13 16:06:39 +0000
commit3087197008d2b12bf9f0d7d1f2aca500db816e7c (patch)
tree995d569c391713fce316f668d5ba13f9a346ecb1 /g13/sh-cmd.c
parentg13: Fix releasing of a syshelp context. (diff)
downloadgnupg-3087197008d2b12bf9f0d7d1f2aca500db816e7c.tar.gz
gnupg-3087197008d2b12bf9f0d7d1f2aca500db816e7c.zip
g13: Return an error for non-existing device.
* g13/sh-cmd.c (cmd_device): Set ERR. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g13/sh-cmd.c')
-rw-r--r--g13/sh-cmd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/g13/sh-cmd.c b/g13/sh-cmd.c
index 4ef37c105..8a3006cab 100644
--- a/g13/sh-cmd.c
+++ b/g13/sh-cmd.c
@@ -161,7 +161,9 @@ static const char hlp_device[] =
"DEVICE <name>\n"
"\n"
"Set the device used by further commands.\n"
- "A device name or a PARTUUID string may be used.";
+ "A device name or a PARTUUID string may be used.\n"
+ "Access to that device (by the g13 system) is locked\n"
+ "until a new DEVICE command or end of this process\n";
static gpg_error_t
cmd_device (assuan_context_t ctx, char *line)
{
@@ -185,7 +187,7 @@ cmd_device (assuan_context_t ctx, char *line)
break;
if (!ti)
{
- set_error (GPG_ERR_EACCES, "device not configured for user");
+ err = set_error (GPG_ERR_EACCES, "device not configured for user");
goto leave;
}
@@ -213,6 +215,8 @@ cmd_device (assuan_context_t ctx, char *line)
fp = NULL;
ctrl->devti = ti;
+ /* Fixme: Take some kind of lock. */
+
leave:
es_fclose (fp);
if (err)
@@ -255,7 +259,7 @@ cmd_create (assuan_context_t ctx, char *line)
err = sh_is_empty_partition (ctrl->server_local->devicename);
if (err)
{
- assuan_set_error (ctx, err, "Partition is not empty");
+ err = assuan_set_error (ctx, err, "Partition is not empty");
goto leave;
}