g13: Return an error for non-existing device.
authorWerner Koch <wk@gnupg.org>
Tue, 2 Feb 2016 17:18:31 +0000 (18:18 +0100)
committerWerner Koch <wk@gnupg.org>
Sat, 13 Feb 2016 16:06:39 +0000 (17:06 +0100)
* g13/sh-cmd.c (cmd_device): Set ERR.

Signed-off-by: Werner Koch <wk@gnupg.org>
g13/sh-cmd.c

index 4ef37c1..8a3006c 100644 (file)
@@ -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;
     }