mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
Update.
2004-07-21 Jakub Jelinek <jakub@redhat.com> * resolv/res_libc.c (res_init): If RES_INIT is set and _res.nscount > 0, call __res_nclose and free nsaddrs. * resolv/Makefile: Add rules to build and run tst-leaks2. * resolv/tst-leaks2.c: New test.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
2004-07-21 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* resolv/res_libc.c (res_init): If RES_INIT is set and
|
||||||
|
_res.nscount > 0, call __res_nclose and free nsaddrs.
|
||||||
|
* resolv/Makefile: Add rules to build and run tst-leaks2.
|
||||||
|
* resolv/tst-leaks2.c: New test.
|
||||||
|
|
||||||
2004-07-21 Ulrich Drepper <drepper@redhat.com>
|
2004-07-21 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* intl/libintl.h: Don't define macros for C++.
|
* intl/libintl.h: Don't define macros for C++.
|
||||||
|
@@ -33,8 +33,9 @@ routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \
|
|||||||
res_hconf res_libc res-state
|
res_hconf res_libc res-state
|
||||||
|
|
||||||
tests = tst-aton tst-leaks
|
tests = tst-aton tst-leaks
|
||||||
|
xtests = tst-leaks2
|
||||||
|
|
||||||
generate := mtrace-tst-leaks tst-leaks.mtrace
|
generate := mtrace-tst-leaks tst-leaks.mtrace tst-leaks2.mtrace
|
||||||
|
|
||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
|
|
||||||
@@ -65,7 +66,8 @@ ifeq (yesyes,$(build-shared)$(have-thread-library))
|
|||||||
tests: $(objpfx)ga_test
|
tests: $(objpfx)ga_test
|
||||||
endif
|
endif
|
||||||
|
|
||||||
generated := mtrace-tst-leaks tst-leaks.mtrace
|
generated := mtrace-tst-leaks tst-leaks.mtrace \
|
||||||
|
mtrace-tst-leaks2 tst-leaks2.mtrace
|
||||||
|
|
||||||
include ../Rules
|
include ../Rules
|
||||||
|
|
||||||
@@ -104,3 +106,12 @@ ifneq (no,$(PERL))
|
|||||||
tests: $(objpfx)mtrace-tst-leaks
|
tests: $(objpfx)mtrace-tst-leaks
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
tst-leaks2-ENV = MALLOC_TRACE=$(objpfx)tst-leaks2.mtrace
|
||||||
|
$(objpfx)mtrace-tst-leaks2: $(objpfx)tst-leaks2.out
|
||||||
|
$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks2.mtrace > $@
|
||||||
|
ifeq (no,$(cross-compiling))
|
||||||
|
ifneq (no,$(PERL))
|
||||||
|
xtests: $(objpfx)mtrace-tst-leaks2
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
@@ -54,6 +54,14 @@ res_init(void) {
|
|||||||
_res.retry = 4;
|
_res.retry = 4;
|
||||||
if (!(_res.options & RES_INIT))
|
if (!(_res.options & RES_INIT))
|
||||||
_res.options = RES_DEFAULT;
|
_res.options = RES_DEFAULT;
|
||||||
|
else if (_res.nscount > 0) {
|
||||||
|
__res_nclose (&_res); /* Close any VC sockets. */
|
||||||
|
|
||||||
|
for (int ns = 0; ns < MAXNS; ns++) {
|
||||||
|
free (_res._u._ext.nsaddrs[ns]);
|
||||||
|
_res._u._ext.nsaddrs[ns] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This one used to initialize implicitly to zero, so unless the app
|
* This one used to initialize implicitly to zero, so unless the app
|
||||||
|
41
resolv/tst-leaks2.c
Normal file
41
resolv/tst-leaks2.c
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
/* Tests for res_init in libresolv
|
||||||
|
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#undef gethostbyname
|
||||||
|
|
||||||
|
#include <mcheck.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <resolv.h>
|
||||||
|
|
||||||
|
static int
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
mtrace ();
|
||||||
|
for (int i = 0; i < 20; ++i)
|
||||||
|
{
|
||||||
|
res_init ();
|
||||||
|
gethostbyname ("www.gnu.org");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TEST_FUNCTION do_test ()
|
||||||
|
#define TIMEOUT 30
|
||||||
|
/* This defines the `main' function and some more. */
|
||||||
|
#include <test-skeleton.c>
|
Reference in New Issue
Block a user