agent: Fix returning GPG_ERR_NOT_FOUND wrongly.
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 2 Nov 2017 07:23:10 +0000 (16:23 +0900)
committerWerner Koch <wk@gnupg.org>
Thu, 2 Nov 2017 16:04:03 +0000 (17:04 +0100)
* agent/learncard.c (agent_handle_learn): Find SERIALNO.

--

Bug is: "gpg-connect-agent learn /bye" just fails wrongly.

Fixes-commit: 8c8ce8711d9c938fcb982b0341e6b052742cb887
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
(cherry picked from commit 5e96fe72e477d09e35ccee48af0fd9ab2b3ae409)

agent/learncard.c

index e0c882a..abe1dd0 100644 (file)
@@ -340,14 +340,12 @@ agent_handle_learn (ctrl_t ctrl, int send, void *assuan_context, int force)
     }
 
   /* Pass on all the collected status information. */
-  if (assuan_context)
+  for (sitem = sparm.info; sitem; sitem = sitem->next)
     {
-      for (sitem = sparm.info; sitem; sitem = sitem->next)
-        {
-          if (!strcmp (sitem->keyword, "SERIALNO"))
-            serialno = sitem->data;
-          assuan_write_status (assuan_context, sitem->keyword, sitem->data);
-        }
+      if (!strcmp (sitem->keyword, "SERIALNO"))
+        serialno = sitem->data;
+      if (assuan_context)
+        assuan_write_status (assuan_context, sitem->keyword, sitem->data);
     }
 
   if (!serialno)