dirmngr: Fix error handling.
[gnupg.git] / g10 / gpgcompose.c
index cd5346f..fafbfd2 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -710,7 +710,7 @@ public_key (const char *option, int argc, char *argv[], void *cookie)
   return processed;
 }
 \f
-struct siginfo
+struct signinfo
 {
   /* Key with which to sign.  */
   kbnode_t issuer_kb;
@@ -789,7 +789,7 @@ sig_issuer (const char *option, int argc, char *argv[], void *cookie)
   gpg_error_t err;
   KEYDB_HANDLE hd;
   KEYDB_SEARCH_DESC desc;
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
 
   if (argc == 0)
     log_fatal ("Usage: %s KEYID\n", option);
@@ -824,7 +824,7 @@ sig_issuer_keyid (const char *option, int argc, char *argv[], void *cookie)
 {
   gpg_error_t err;
   KEYDB_SEARCH_DESC desc;
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
 
   if (argc == 0)
     log_fatal ("Usage: %s KEYID|self\n", option);
@@ -853,7 +853,7 @@ sig_issuer_keyid (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_pk (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -893,7 +893,7 @@ sig_pk (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_user_id (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -922,7 +922,7 @@ sig_user_id (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_class (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -942,7 +942,7 @@ sig_class (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_digest (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -962,7 +962,7 @@ sig_digest (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_timestamp (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   char *tail = NULL;
 
   if (argc == 0)
@@ -979,7 +979,7 @@ sig_timestamp (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_expiration (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int is_expiration = strcmp (option, "--expiration") == 0;
   u32 *i = is_expiration ? &si->expiration : &si->key_expiration;
 
@@ -999,7 +999,7 @@ sig_expiration (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_int_list (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int nvalues = 1;
   char *values = xmalloc (nvalues * sizeof (values[0]));
   char *tail = argv[0];
@@ -1069,7 +1069,7 @@ sig_int_list (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_flag (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int range[2] = {0, 255};
   char *tail;
   int v;
@@ -1115,7 +1115,7 @@ sig_flag (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_trust_level (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail;
 
@@ -1143,7 +1143,7 @@ sig_trust_level (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_string_arg (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   char *p = argv[0];
   char **s;
 
@@ -1173,7 +1173,7 @@ static int
 sig_revocation_key (const char *option, int argc, char *argv[], void *cookie)
 {
   gpg_error_t err;
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int v;
   char *tail;
   PKT_public_key pk;
@@ -1213,7 +1213,7 @@ sig_revocation_key (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_notation (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int is_blob = strcmp (option, "--notation") != 0;
   struct notation *notation;
   char *p = argv[0];
@@ -1317,7 +1317,7 @@ sig_notation (const char *option, int argc, char *argv[], void *cookie)
   else
     notation = string_to_notation (p, 1);
   if (! notation)
-    log_fatal ("creating notation: an unknown error occured.\n");
+    log_fatal ("creating notation: an unknown error occurred.\n");
   notation->next = si->notations;
   si->notations = notation;
 
@@ -1330,7 +1330,7 @@ sig_notation (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_big_endian_arg (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   char *p = argv[0];
   int i;
   int l;
@@ -1385,7 +1385,7 @@ sig_big_endian_arg (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_reason_for_revocation (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int v;
   char *tail;
 
@@ -1410,7 +1410,7 @@ sig_reason_for_revocation (const char *option, int argc, char *argv[], void *coo
 static int
 sig_corrupt (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
 
   (void) option;
   (void) argc;
@@ -1560,7 +1560,7 @@ static struct option sig_options[] = {
 static int
 mksubpkt_callback (PKT_signature *sig, void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
 
   if (si->key_expiration)
@@ -1654,13 +1654,17 @@ mksubpkt_callback (PKT_signature *sig, void *cookie)
 
   if (si->reason_for_revocation)
     {
-      int l = 1 + strlen (si->reason_for_revocation);
-      char buf[l];
+      int len = 1 + strlen (si->reason_for_revocation);
+      char *buf;
+
+      buf = xmalloc (len);
 
       buf[0] = si->reason_for_revocation_code;
-      memcpy (&buf[1], si->reason_for_revocation, l - 1);
+      memcpy (&buf[1], si->reason_for_revocation, len - 1);
+
+      build_sig_subpkt (sig, SIGSUBPKT_REVOC_REASON, buf, len);
 
-      build_sig_subpkt (sig, SIGSUBPKT_REVOC_REASON, buf, l);
+      xfree (buf);
     }
 
   if (si->features)
@@ -1675,7 +1679,7 @@ signature (const char *option, int argc, char *argv[], void *cookie)
 {
   gpg_error_t err;
   iobuf_t out = cookie;
-  struct siginfo si;
+  struct signinfo si;
   int processed;
   PKT_public_key *pk;
   PKT_signature *sig;
@@ -2540,10 +2544,13 @@ encrypted (const char *option, int argc, char *argv[], void *cookie)
 
   if (do_debug)
     {
-      char buf[2 * session_key.keylen + 1];
+      char *buf;
+
+      buf = xmalloc (2 * session_key.keylen + 1);
       debug ("session key: algo: %d; keylen: %d; key: %s\n",
              session_key.algo, session_key.keylen,
              bin2hex (session_key.key, session_key.keylen, buf));
+      xfree (buf);
     }
 
   if (strcmp (option, "--encrypted-mdc") == 0)