diff options
Diffstat (limited to 'posix')
-rw-r--r-- | posix/Makefile | 10 | ||||
-rw-r--r-- | posix/bug-ga2.c | 30 |
2 files changed, 39 insertions, 1 deletions
diff --git a/posix/Makefile b/posix/Makefile index 97e0325..815c15a 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 0000000..5ea759b --- /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; +} |