Merge branch 'STABLE-BRANCH-2-2'
[gnupg.git] / common / t-iobuf.c
index 99581b9..bdeab99 100644 (file)
@@ -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)
     {
@@ -189,6 +190,8 @@ main (int argc, char *argv[])
        n ++;
       }
     assert (n == 10 + (strlen (content) - 10) / 2);
+
+    iobuf_close (iobuf);
   }
 
 
@@ -265,6 +268,8 @@ main (int argc, char *argv[])
     /* The string should have been truncated (max_len == 0).  */
     assert (max_len == 0);
     free (buffer);
+
+    iobuf_close (iobuf);
   }
 
   {
@@ -278,10 +283,12 @@ main (int argc, char *argv[])
     int c;
     int n;
     int lastc = 0;
+    struct content_filter_state *state;
 
     iobuf = iobuf_temp_with_content (content, strlen(content));
     rc = iobuf_push_filter (iobuf,
-                           content_filter, content_filter_new (content2));
+                           content_filter,
+                            state=content_filter_new (content2));
     assert (rc == 0);
 
     n = 0;
@@ -308,6 +315,9 @@ main (int argc, char *argv[])
            /* printf ("%d: '%c' (%d)\n", n, c, c); */
          }
       }
+
+    iobuf_close (iobuf);
+    free (state);
   }
 
   /* Write some data to a temporary filter.  Push a new filter.  The
@@ -345,15 +355,19 @@ main (int argc, char *argv[])
 
     assert (n == strlen (content) + 2 * (strlen (content2) + 1));
     assert (strcmp (buffer, "0123456789aabbcc") == 0);
+
+    iobuf_close (iobuf);
   }
 
   {
     iobuf_t iobuf;
     int rc;
-    char *content = "0123456789";
+    char content[] = "0123456789";
     int n;
     int c;
-    char buffer[strlen (content)];
+    char buffer[10];
+
+    assert (sizeof buffer == sizeof content - 1);
 
     iobuf = iobuf_temp_with_content (content, strlen (content));
     assert (iobuf);
@@ -372,6 +386,8 @@ main (int argc, char *argv[])
     assert (n == 2);
     assert (buffer[0] == '3');
     assert (buffer[1] == '7');
+
+    iobuf_close (iobuf);
   }
 
   return 0;