Add readcert command.
[gnupg.git] / common / asshelp.c
index 5aa61c7..6663241 100644 (file)
@@ -42,6 +42,8 @@ send_one_option (assuan_context_t ctx, gpg_err_source_t errsource,
   gpg_error_t err;
   char *optstr;
 
+  (void)errsource;
+
   if (!value || !*value)
     err = 0;  /* Avoid sending empty strings.  */
   else if (asprintf (&optstr, "OPTION %s=%s", name, value ) < 0)
@@ -49,7 +51,7 @@ send_one_option (assuan_context_t ctx, gpg_err_source_t errsource,
   else
     {
       err = assuan_transact (ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL);
-      free (optstr);
+      xfree (optstr);
     }
 
   return err;
@@ -119,7 +121,7 @@ send_pinentry_environment (assuan_context_t ctx,
   old_lc = setlocale (LC_CTYPE, NULL);
   if (old_lc)
     {
-      old_lc = strdup (old_lc);
+      old_lc = xtrystrdup (old_lc);
       if (!old_lc)
         return gpg_error_from_syserror ();
     }
@@ -134,7 +136,7 @@ send_pinentry_environment (assuan_context_t ctx,
   if (old_lc)
     {
       setlocale (LC_CTYPE, old_lc);
-      free (old_lc);
+      xfree (old_lc);
     }
 #endif
   if (err)
@@ -145,7 +147,7 @@ send_pinentry_environment (assuan_context_t ctx,
   old_lc = setlocale (LC_MESSAGES, NULL);
   if (old_lc)
     {
-      old_lc = strdup (old_lc);
+      old_lc = xtrystrdup (old_lc);
       if (!old_lc)
         return gpg_error_from_syserror ();
     }
@@ -160,7 +162,7 @@ send_pinentry_environment (assuan_context_t ctx,
   if (old_lc)
     {
       setlocale (LC_MESSAGES, old_lc);
-      free (old_lc);
+      xfree (old_lc);
     }
 #endif
   if (err)
@@ -172,6 +174,8 @@ send_pinentry_environment (assuan_context_t ctx,
     {
       err = send_one_option (ctx, errsource, "xauthority", 
                              opt_xauthority ? opt_xauthority : dft_xauthority);
+      if (gpg_err_code (err) == GPG_ERR_UNKNOWN_OPTION)
+        err = 0;
       if (err)
         return err;
     }
@@ -183,6 +187,8 @@ send_pinentry_environment (assuan_context_t ctx,
       err = send_one_option (ctx, errsource, "pinentry-user-data", 
                              opt_pinentry_user_data ?
                              opt_pinentry_user_data : dft_pinentry_user_data);
+      if (gpg_err_code (err) == GPG_ERR_UNKNOWN_OPTION)
+        err = 0;
       if (err)
         return err;
     }