[git] GnuPG - branch, master, updated. gnupg-2.1.10-105-g3f52c7d

by NIIBE Yutaka cvs at cvs.gnupg.org
Tue Jan 12 02:47:14 CET 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  3f52c7da3940ec06572270d511000dc7fe9c27d2 (commit)
      from  0617a05eb5cb76b239700355d897eb7b49088bf1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3f52c7da3940ec06572270d511000dc7fe9c27d2
Author: NIIBE Yutaka <gniibe at fsij.org>
Date:   Tue Jan 12 10:32:20 2016 +0900

    common: Fix iobuf API of filter function for alignment.
    
    * common/iobuf.h (IOBUFCTRL_DESC): Change the call semantics.
    * common/iobuf.c (iobuf_desc): Add the second argument DESC.
    (print_chain, iobuf_close, do_open, iobuf_sockopen, iobuf_ioctl)
    (iobuf_push_filter2, pop_filter, iobuf_write_temp): Change calls
    of iobuf_desc.
    (file_filter, file_es_filter, sock_filter, block_filter): Fill the
    description.
    * common/t-iobuf.c (every_other_filter, double_filter): Likewise.
    * g10/armor.c, g10/cipher.c, g10/compress-bz2.c, g10/compress.c,
    g10/decrypt-data.c, g10/encrypt.c, g10/mdfilter.c, g10/progress.c,
    g10/textfilter.c: Likewise.
    
    --
    
    Newer GCC warns against possible alignment difference of pointers.
    This change can silence those warnings.
    
    Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>

diff --git a/common/iobuf.c b/common/iobuf.c
index d149e2e..b6e7885 100644
--- a/common/iobuf.c
+++ b/common/iobuf.c
@@ -578,7 +578,7 @@ file_filter (void *opaque, int control, iobuf_t chain, byte * buf,
     }
   else if (control == IOBUFCTRL_DESC)
     {
-      *(char **) buf = "file_filter(fd)";
+      mem2str (buf, "file_filter(fd)", *ret_len);
     }
   else if (control == IOBUFCTRL_FREE)
     {
@@ -667,7 +667,7 @@ file_es_filter (void *opaque, int control, iobuf_t chain, byte * buf,
     }
   else if (control == IOBUFCTRL_DESC)
     {
-      *(char **) buf = "estream_filter";
+      mem2str (buf, "estream_filter", *ret_len);
     }
   else if (control == IOBUFCTRL_FREE)
     {
@@ -765,7 +765,7 @@ sock_filter (void *opaque, int control, iobuf_t chain, byte * buf,
     }
   else if (control == IOBUFCTRL_DESC)
     {
-      *(char **) buf = "sock_filter";
+      mem2str (buf, "sock_filter", *ret_len);
     }
   else if (control == IOBUFCTRL_FREE)
     {
@@ -993,7 +993,7 @@ block_filter (void *opaque, int control, iobuf_t chain, byte * buffer,
     }
   else if (control == IOBUFCTRL_DESC)
     {
-      *(char **) buf = "block_filter";
+      mem2str (buf, "block_filter", *ret_len);
     }
   else if (control == IOBUFCTRL_FREE)
     {
@@ -1057,19 +1057,23 @@ block_filter (void *opaque, int control, iobuf_t chain, byte * buffer,
   return rc;
 }
 
+#define MAX_IOBUF_DESC 32
+/*
+ * Fill the buffer by the description of iobuf A.
+ * The buffer size should be MAX_IOBUF_DESC (or larger).
+ * Returns BUF as (const char *).
+ */
 static const char *
-iobuf_desc (iobuf_t a)
+iobuf_desc (iobuf_t a, byte *buf)
 {
-  size_t dummy_len = 0;
-  const char *desc = "?";
+  size_t len = MAX_IOBUF_DESC;
 
   if (! a || ! a->filter)
-    return desc;
-
-  a->filter (a->filter_ov, IOBUFCTRL_DESC, NULL,
-	     (byte *) & desc, &dummy_len);
+    memcpy (buf, "?", 2);
+  else
+    a->filter (a->filter_ov, IOBUFCTRL_DESC, NULL, buf, &len);
 
-  return desc;
+  return buf;
 }
 
 static void
@@ -1079,9 +1083,10 @@ print_chain (iobuf_t a)
     return;
   for (; a; a = a->chain)
     {
+      byte desc[MAX_IOBUF_DESC];
 
       log_debug ("iobuf chain: %d.%d '%s' filter_eof=%d start=%d len=%d\n",
-		 a->no, a->subno, iobuf_desc (a), a->filter_eof,
+		 a->no, a->subno, iobuf_desc (a, desc), a->filter_eof,
 		 (int) a->d.start, (int) a->d.len);
     }
 }
@@ -1126,6 +1131,7 @@ iobuf_close (iobuf_t a)
 
   for (; a; a = a_chain)
     {
+      byte desc[MAX_IOBUF_DESC];
       int rc2 = 0;
 
       a_chain = a->chain;
@@ -1135,7 +1141,7 @@ iobuf_close (iobuf_t a)
 
       if (DBG_IOBUF)
 	log_debug ("iobuf-%d.%d: close '%s'\n",
-		   a->no, a->subno, iobuf_desc (a));
+		   a->no, a->subno, iobuf_desc (a, desc));
 
       if (a->filter && (rc2 = a->filter (a->filter_ov, IOBUFCTRL_FREE,
 					 a->chain, NULL, &dummy_len)))
@@ -1275,6 +1281,7 @@ do_open (const char *fname, int special_filenames,
   size_t len = 0;
   int print_only = 0;
   int fd;
+  byte desc[MAX_IOBUF_DESC];
 
   assert (use == IOBUF_INPUT || use == IOBUF_OUTPUT);
 
@@ -1321,7 +1328,7 @@ do_open (const char *fname, int special_filenames,
   file_filter (fcx, IOBUFCTRL_INIT, NULL, NULL, &len);
   if (DBG_IOBUF)
     log_debug ("iobuf-%d.%d: open '%s' desc=%s fd=%d\n",
-	       a->no, a->subno, fname, iobuf_desc (a), FD2INT (fcx->fp));
+	       a->no, a->subno, fname, iobuf_desc (a, desc), FD2INT (fcx->fp));
 
   return a;
 }
@@ -1439,6 +1446,8 @@ iobuf_sockopen (int fd, const char *mode)
 int
 iobuf_ioctl (iobuf_t a, iobuf_ioctl_t cmd, int intval, void *ptrval)
 {
+  byte desc[MAX_IOBUF_DESC];
+
   if (cmd == IOBUF_IOCTL_KEEP_OPEN)
     {
       /* Keep system filepointer/descriptor open.  This was used in
@@ -1446,7 +1455,7 @@ iobuf_ioctl (iobuf_t a, iobuf_ioctl_t cmd, int intval, void *ptrval)
          anymore.  */
       if (DBG_IOBUF)
 	log_debug ("iobuf-%d.%d: ioctl '%s' keep_open=%d\n",
-		   a ? a->no : -1, a ? a->subno : -1, iobuf_desc (a),
+		   a ? a->no : -1, a ? a->subno : -1, iobuf_desc (a, desc),
 		   intval);
       for (; a; a = a->chain)
 	if (!a->chain && a->filter == file_filter)
@@ -1480,7 +1489,7 @@ iobuf_ioctl (iobuf_t a, iobuf_ioctl_t cmd, int intval, void *ptrval)
     {
       if (DBG_IOBUF)
 	log_debug ("iobuf-%d.%d: ioctl '%s' no_cache=%d\n",
-		   a ? a->no : -1, a ? a->subno : -1, iobuf_desc (a),
+		   a ? a->no : -1, a ? a->subno : -1, iobuf_desc (a, desc),
 		   intval);
       for (; a; a = a->chain)
 	if (!a->chain && a->filter == file_filter)
@@ -1658,8 +1667,9 @@ iobuf_push_filter2 (iobuf_t a,
 
   if (DBG_IOBUF)
     {
+      byte desc[MAX_IOBUF_DESC];
       log_debug ("iobuf-%d.%d: push '%s'\n",
-		 a->no, a->subno, iobuf_desc (a));
+		 a->no, a->subno, iobuf_desc (a, desc));
       print_chain (a);
     }
 
@@ -1681,10 +1691,11 @@ pop_filter (iobuf_t a, int (*f) (void *opaque, int control,
   iobuf_t b;
   size_t dummy_len = 0;
   int rc = 0;
+  byte desc[MAX_IOBUF_DESC];
 
   if (DBG_IOBUF)
     log_debug ("iobuf-%d.%d: pop '%s'\n",
-	       a->no, a->subno, iobuf_desc (a));
+	       a->no, a->subno, iobuf_desc (a, desc));
   if (a->use == IOBUF_INPUT_TEMP || a->use == IOBUF_OUTPUT_TEMP)
     {
       /* This should be the last filter in the pipeline.  */
@@ -2188,6 +2199,7 @@ iobuf_write_temp (iobuf_t dest, iobuf_t source)
 size_t
 iobuf_temp_to_buffer (iobuf_t a, byte * buffer, size_t buflen)
 {
+  byte desc[MAX_IOBUF_DESC];
   size_t n;
 
   while (1)
@@ -2195,7 +2207,7 @@ iobuf_temp_to_buffer (iobuf_t a, byte * buffer, size_t buflen)
       int rc = filter_flush (a);
       if (rc)
 	log_bug ("Flushing iobuf %d.%d (%s) from iobuf_temp_to_buffer failed.  Ignoring.\n",
-		 a->no, a->subno, iobuf_desc (a));
+		 a->no, a->subno, iobuf_desc (a, desc));
       if (! a->chain)
 	break;
       a = a->chain;
diff --git a/common/iobuf.h b/common/iobuf.h
index cb79105..69764d6 100644
--- a/common/iobuf.h
+++ b/common/iobuf.h
@@ -404,10 +404,10 @@ int iobuf_cancel (iobuf_t iobuf);
        called on the pipeline.
 
      IOBUFCTRL_DESC: Called with this value to get a human-readable
-       description of the filter.  * (char **) BUF should set to the
-       NUL-terminated string.  Note: you need to keep track of this
-       value and, if necessary, free it when the filter function is
-       called with control set to IOBUFCTRL_FREE.
+       description of the filter.  *LEN is the size of the buffer.
+       The description is filled into BUF, NUL-terminated.  Always
+       returns 0.  When the size of the buffer is shorter than the
+       description, it is truncated and not NUL-terminated.
   */
 int iobuf_push_filter (iobuf_t a, int (*f) (void *opaque, int control,
 					    iobuf_t chain, byte * buf,
diff --git a/common/t-iobuf.c b/common/t-iobuf.c
index 99581b9..2835df4 100644
--- a/common/t-iobuf.c
+++ b/common/t-iobuf.c
@@ -5,6 +5,7 @@
 #include <stdlib.h>
 
 #include "iobuf.h"
+#include "stringhelp.h"
 
 /* Return every other byte.  In particular, reads two bytes, returns
    the second one.  */
@@ -16,7 +17,7 @@ every_other_filter (void *opaque, int control,
 
   if (control == IOBUFCTRL_DESC)
     {
-      *(char **) buf = "every_other_filter";
+      mem2str (buf, "every_other_filter", *len);
     }
   if (control == IOBUFCTRL_UNDERFLOW)
     {
@@ -52,7 +53,7 @@ double_filter (void *opaque, int control,
 
   if (control == IOBUFCTRL_DESC)
     {
-      * (char **) buf = "double_filter";
+      mem2str (buf, "double_filter", *len);
     }
   if (control == IOBUFCTRL_FLUSH)
     {
diff --git a/g10/armor.c b/g10/armor.c
index 6c133a2..55ee5d3 100644
--- a/g10/armor.c
+++ b/g10/armor.c
@@ -1251,7 +1251,7 @@ armor_filter( void *opaque, int control,
         release_armor_context (afx);
     }
     else if( control == IOBUFCTRL_DESC )
-	*(char**)buf = "armor_filter";
+        mem2str (buf, "armor_filter", *ret_len);
     return rc;
 }
 
diff --git a/g10/cipher.c b/g10/cipher.c
index b72b144..41324c3 100644
--- a/g10/cipher.c
+++ b/g10/cipher.c
@@ -157,7 +157,7 @@ cipher_filter( void *opaque, int control,
 	gcry_cipher_close (cfx->cipher_hd);
     }
     else if( control == IOBUFCTRL_DESC ) {
-	*(char**)buf = "cipher_filter";
+        mem2str (buf, "cipher_filter", *ret_len);
     }
     return rc;
 }
diff --git a/g10/compress-bz2.c b/g10/compress-bz2.c
index ea80956..128eadf 100644
--- a/g10/compress-bz2.c
+++ b/g10/compress-bz2.c
@@ -248,6 +248,6 @@ compress_filter_bz2( void *opaque, int control,
 	zfx->release (zfx);
     }
   else if( control == IOBUFCTRL_DESC )
-    *(char**)buf = "compress_filter";
+    mem2str (buf, "compress_filter", *ret_len);
   return rc;
 }
diff --git a/g10/compress.c b/g10/compress.c
index 8047dbb..fd1ed6a 100644
--- a/g10/compress.c
+++ b/g10/compress.c
@@ -288,7 +288,7 @@ compress_filter( void *opaque, int control,
           zfx->release (zfx);
     }
     else if( control == IOBUFCTRL_DESC )
-	*(char**)buf = "compress_filter";
+        mem2str (buf, "compress_filter", *ret_len);
     return rc;
 }
 #endif /*HAVE_ZIP*/
diff --git a/g10/decrypt-data.c b/g10/decrypt-data.c
index 2d9f54f..1380faf 100644
--- a/g10/decrypt-data.c
+++ b/g10/decrypt-data.c
@@ -425,7 +425,7 @@ mdc_decode_filter (void *opaque, int control, IOBUF a,
     }
   else if ( control == IOBUFCTRL_DESC )
     {
-      *(char**)buf = "mdc_decode_filter";
+      mem2str (buf, "mdc_decode_filter", *ret_len);
     }
   return rc;
 }
@@ -496,7 +496,7 @@ decode_filter( void *opaque, int control, IOBUF a, byte *buf, size_t *ret_len)
     }
   else if ( control == IOBUFCTRL_DESC )
     {
-      *(char**)buf = "decode_filter";
+      mem2str (buf, "decode_filter", *ret_len);
     }
   return rc;
 }
diff --git a/g10/encrypt.c b/g10/encrypt.c
index eca1c27..abd8002 100644
--- a/g10/encrypt.c
+++ b/g10/encrypt.c
@@ -848,7 +848,7 @@ encrypt_filter (void *opaque, int control,
     }
   else if ( control == IOBUFCTRL_DESC )
     {
-      *(char**)buf = "encrypt_filter";
+      mem2str (buf, "encrypt_filter", *ret_len);
     }
   return rc;
 }
diff --git a/g10/mdfilter.c b/g10/mdfilter.c
index 708bdcd..88b2ee1 100644
--- a/g10/mdfilter.c
+++ b/g10/mdfilter.c
@@ -58,7 +58,7 @@ md_filter( void *opaque, int control,
 	*ret_len = i;
     }
     else if( control == IOBUFCTRL_DESC )
-	*(char**)buf = "md_filter";
+        mem2str (buf, "md_filter", *ret_len);
     return rc;
 }
 
diff --git a/g10/progress.c b/g10/progress.c
index ca20223..f4b4698 100644
--- a/g10/progress.c
+++ b/g10/progress.c
@@ -131,7 +131,7 @@ progress_filter (void *opaque, int control,
       release_progress_context (pfx);
     }
   else if (control == IOBUFCTRL_DESC)
-    *(char**)buf = "progress_filter";
+    mem2str (buf, "progress_filter", *ret_len);
   return rc;
 }
 
diff --git a/g10/textfilter.c b/g10/textfilter.c
index 394d9c3..da303c4 100644
--- a/g10/textfilter.c
+++ b/g10/textfilter.c
@@ -150,7 +150,7 @@ text_filter( void *opaque, int control,
 	tfx->buffer = NULL;
     }
     else if( control == IOBUFCTRL_DESC )
-	*(char**)buf = "text_filter";
+        mem2str (buf, "text_filter", *ret_len);
     return rc;
 }
 

-----------------------------------------------------------------------

Summary of changes:
 common/iobuf.c     | 52 ++++++++++++++++++++++++++++++++--------------------
 common/iobuf.h     |  8 ++++----
 common/t-iobuf.c   |  5 +++--
 g10/armor.c        |  2 +-
 g10/cipher.c       |  2 +-
 g10/compress-bz2.c |  2 +-
 g10/compress.c     |  2 +-
 g10/decrypt-data.c |  4 ++--
 g10/encrypt.c      |  2 +-
 g10/mdfilter.c     |  2 +-
 g10/progress.c     |  2 +-
 g10/textfilter.c   |  2 +-
 12 files changed, 49 insertions(+), 36 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list