summary refs log tree commit diff
path: root/posix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-02-23 19:54:06 +0000
committerUlrich Drepper <drepper@redhat.com>2004-02-23 19:54:06 +0000
commit5605e1177d4728b66b92cb5012810b5feda1ec4b (patch)
treeb65a493bf9b40bb2291d96739c59e01eb392e10d /posix
parenta8fd5a02d94dcbe9a75252a66d2d73b41b9a2c83 (diff)
downloadglibc-5605e1177d4728b66b92cb5012810b5feda1ec4b.tar.gz
glibc-5605e1177d4728b66b92cb5012810b5feda1ec4b.tar.xz
glibc-5605e1177d4728b66b92cb5012810b5feda1ec4b.zip
Update.
2004-02-23  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/posix/getaddrinfo.c (gaih_inet): If _res has not been
	inited yet, try to init it before saving old _res.options.
	* posix/Makefile (xtests): Add bug-ga2.
	(generated): Add bug-ga2.mtrace and bug-ga2-mem.
	(xtests): Depend on bug-ga2-mem.
	($(objpfx)bug-ga2-mem, bug-ga2-ENV): New.
	* posix/bug-ga2.c: New test.
Diffstat (limited to 'posix')
-rw-r--r--posix/Makefile10
-rw-r--r--posix/bug-ga2.c30
2 files changed, 39 insertions, 1 deletions
diff --git a/posix/Makefile b/posix/Makefile
index 97e0325d08..815c15ab24 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -82,6 +82,7 @@ tests		:= tstgetopt testfnm runtests runptests	     \
 		   bug-regex21 bug-regex22 bug-regex23 tst-nice tst-nanosleep \
 		   transbug tst-rxspencer tst-pcre tst-boost \
 		   bug-ga1
+xtests		:= bug-ga2
 ifeq (yes,$(build-shared))
 test-srcs	:= globtest
 tests           += wordexp-test tst-exec tst-spawn
@@ -98,7 +99,8 @@ generated := $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
 	     bug-regex2.mtrace bug-regex14-mem bug-regex14.mtrace \
 	     bug-regex21-mem bug-regex21.mtrace \
 	     tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \
-	     tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace
+	     tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \
+	     bug-ga2.mtrace bug-ga2-mem
 
 include ../Rules
 
@@ -191,6 +193,7 @@ ifeq (no,$(cross-compiling))
 tests: $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \
   $(objpfx)bug-regex21-mem $(objpfx)tst-rxspencer-mem \
   $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out
+xtests: $(objpfx)bug-ga2-mem
 endif
 
 $(objpfx)annexc.out: $(objpfx)annexc
@@ -241,3 +244,8 @@ $(objpfx)tst-regex: $(common-objpfx)rt/librt.so
 else
 $(objpfx)tst-regex: $(common-objpfx)rt/librt.a
 endif
+
+$(objpfx)bug-ga2-mem: $(objpfx)bug-ga2.out
+	$(common-objpfx)malloc/mtrace $(objpfx)bug-ga2.mtrace > $@
+
+bug-ga2-ENV = MALLOC_TRACE=$(objpfx)bug-ga2.mtrace
diff --git a/posix/bug-ga2.c b/posix/bug-ga2.c
new file mode 100644
index 0000000000..5ea759b8ce
--- /dev/null
+++ b/posix/bug-ga2.c
@@ -0,0 +1,30 @@
+/* Test case by Sam Varshavchik <mrsam@courier-mta.com>.  */
+#include <mcheck.h>
+#include <netdb.h>
+#include <stdio.h>
+#include <string.h>
+
+int
+main (void)
+{
+  struct addrinfo hints, *res;
+  int i, ret;
+
+  mtrace ();
+  for (i = 0; i < 100; i++)
+    {
+      memset (&hints, 0, sizeof (hints));
+      hints.ai_family = PF_UNSPEC;
+      hints.ai_socktype = SOCK_STREAM;
+
+      ret = getaddrinfo ("www.gnu.org", "http", &hints, &res);
+
+      if (ret)
+	{
+	  printf ("%s\n", gai_strerror (ret));
+	  return 1;
+	}
+      freeaddrinfo (res);
+    }
+  return 0;
+}