Commit Graph

21 Commits

Author SHA1 Message Date
Florian Weimer
8a03ccbb77 hesiod: Avoid heap overflow in get_txt_records [BZ #20031] 2016-05-02 16:04:32 +02:00
Florian Weimer
5018f16c62 hesiod: Always use thread-local resolver state [BZ #19573]
The Hesiod implementation imported into glibc was enhanced
to support caller-supplied resolver states.  But its only
consumer is nss_hesiod, and it supplies the thread-local
resolver state.  Therefore, this commit changes the Hesiod
implementation to use the thread-local resolver state (_res)
directly.  This fixes bug 19573 because the Hesiod
implementation no longer has to initialize and free any
resolver state.

To avoid any risk of interposition of ABI-incompatible Hesiod
function implementations, this commit marks the Hesiod functions
as hidden.  (They were already hidden using a linker version
script.)
2016-05-02 15:25:20 +02:00
Florian Weimer
46cb402c6d hesiod: Remove DEF_RHS
No functional change because DEF_RHS was already disabled before.
2016-05-02 15:11:02 +02:00
Florian Weimer
dbdc657dc0 hesiod: Remove RCS keywords 2016-05-02 12:07:09 +02:00
Florian Weimer
84b3fd8407 Rename __secure_getenv to secure_getenv 2012-07-25 19:46:22 +02:00
Ulrich Drepper
312be3f9f5 Clean up internal fopen uses
No need to ever not use c and e.
2011-11-15 04:24:42 -05:00
Ulrich Drepper
cb07f6f67d * resolv/res_init.c (__res_iclose): New function. Broken out of
res_nclose.  Take addition parameter which determines whether
	addresses should be freed.
	(res_nclose): Call __res_iclose.
	(res_thread_freeres): Likewise.
	* resolv/res_data.c (res_close): Call __res_iclose.
	* resolv/res_libc.c (res_init): No need to separately free the
	addresses.
	(__res_maybe_init): Likewise.
	* resolv/res_send.c: Use __res_iclose instead of res_nclose.
	* resolv/Versions [GLIBC_PRIVATE]: Add __res_iclose.
	* include/resolv.h: Declare __res_iclose.
	Add libc_hidden_proto for __res_iclose.
	* hesiod/hesiod.c (__hesiod_res_set): No need to free name server
	addresses here again.
2005-11-01 00:08:54 +00:00
Ulrich Drepper
7b01092b16 * hesiod/hesiod.c (hesiod_init): Don't check for ctx->classes[0] == 0
or both classes equal here.
	(parse_config_file): If both classes are equal, clear the second one.
2005-06-15 06:44:01 +00:00
Ulrich Drepper
b399a0c2e2 * hesiod/hesiod_p.h (struct hesiod_p): Add classes array.
* hesiod/hesiod.c (hesiod_init): Initialize classes.  Fail if no
	valid classes were given or if both are equal.
	(hesiod_resolve): Use ctx->classes instead of hardcoded C_IN
	and C_HS order.
	(parse_config_file): Handle classes keyword.
	* hesiod/README.hesiod: Mention addition of the classes keyword.
2005-06-15 04:14:52 +00:00
Ulrich Drepper
a334319f65 (CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4. 2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6 2.5-18.1 2007-07-12 18:26:36 +00:00
Ulrich Drepper
87bb6b6c6b Update.
2004-08-04  Jakub Jelinek  <jakub@redhat.com>

	* hesiod/hesiod.c (__hesiod_res_get): Use calloc instead of malloc +
	memset.
	(__hesiod_res_set): Free nsaddrs.

	* include/resolv.h (__res_maybe_init): Add prototype.
	* resolv/resolv.h (struct __res_state): Add _u._ext.initstamp field.
	* resolv/Versions (libc): Add __res_maybe_init@@GLIBC_PRIVATE.
	* resolv/res_libc.c (__res_initstamp, lock): New variables.
	(res_init): Increase __res_initstamp.
	(__res_maybe_init): New function.
	* resolv/res_init.c (__res_vinit): Initialize _u._ext.initstamp.
	* hesiod/hesiod.c (__hesiod_res_get): Use __res_maybe_init instead
	of RES_INIT check and {res_ninit,__res_ninit,res_init} call.
	* sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise.
	* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r,
	_nss_dns_gethostbyaddr_r): Likewise.
	* resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r,
	_nss_dns_getnetbyaddr_r): Likewise.
	* resolv/gethnamaddr.c (gethostbyname, gethostbyname2,
	gethostbyaddr): Likewise.
	* resolv/res_data.c (fp_nquery, res_mkquery, res_mkupdate,
	res_isourserver, res_sendsigned, res_update, res_search,
	res_querydomain): Likewise.
	* nss/getXXbyYY_r.c (INTERNAL (REENTRANT_NAME)): Likewise.
	* nss/digits_dots.c (__nss_hostname_digits_dots): Likewise.
	* nss/getnssent_r.c (__nss_setent, __nss_endent, __nss_getent_r):
	Likewise.

	* sysdeps/posix/getaddrinfo.c (gaih_inet): Set ai_family for
	V4-mapped IPv6 addresses and req->ai_family==AF_INET.
	Reported by A. Guru <a.guru@sympatico.ca>.

	* po/pl.po: Likewise.
	characters than necessary.
2004-08-05 23:32:24 +00:00
Ulrich Drepper
3b46325bed Update.
2001-02-03  Ulrich Drepper  <drepper@redhat.com>

	* hesiod/hesiod.c: Remove unnecessary code.  Remove all uses of strcat.

	* hesiod/hesiod.c (hesiod_resolve): Also search HS records if
2001-02-03 08:30:32 +00:00
Ulrich Drepper
0c7dfa144b Update.
* hesiod/hesiod.c (hesiod_resolve): Also search HS records is
	errno is ECONNREFUSED.

	* posix/Makefile: Define MBS_SUPPORT for regex.c.
2001-02-03 07:01:11 +00:00
Ulrich Drepper
2f54c82dac Update.
* elf/Makefile (tests): Add nodlopen.  Add rules to generate nodlopen.
	* include/dlfcn.h: Define __RTLD_DLOPEN.
	* elf/dl-load.c (_dl_map_object_from_fd): If DF_1_NOOPEN is set
	and this is a dlopen() call, do not load the binary.
	* dlfcn/dlopen.c: Add __RTLD_DLOPEN to mode passed down to _dl_open.
	* dlfcn/dlopenold.c: Likewise.
	* configure.in: Add test for -z nodelete option.
	* config.make.in: Define have-z-nodelete with libc_cv_z_nodelete.

2000-07-20  Mark Kettenis  <kettenis@gnu.org>

	Make Hesiod NSS module thread-safe.

	* hesiod/README.hesiod: Update.

	* hesiod/Versions [GLIBC_2.2]: Add _nss_hesiod_getservbyport_r,
	_nss_hesiod_setprotoent, _nss_hesiod_endprotoent,
	_nss_hesiod_getprotobyname_r, and _nss_hesiod_getprotobynumber_r.
	* hesiod/Makefile (libnss_hesiod-routines): Add hesiod-init and
	hesiod-proto.
	* hesiod/nss_hesiod/hesiod-init.c: New file.
	* hesiod/nss_hesiod/hesiod-pwd.c: Rewritten for thread-safeness.
	* hesiod/nss_hesiod/hesiod-grp.c: Likewise.
	* hesiod/nss_hesiod/nss_hesiod.h: New file.
	* hesiod/nss_hesiod/hesiod-service.c
	(_nss_hesiod_getservbyport_r): New function.  Provide support for
	looking up services by port number.
	* hesiod/nss_hesiod/hesiod-proto.c: New file.

	* hesiod/hesiod.c: Update from BIND 8.2.3-T5B.
	* hesiod/hesiod.h: Likewise.
	* hesiod/hesiod_p.h: Likewise.

2000-07-20  Mark Kettenis  <kettenis@gnu.org>

	Fix problems with `struct __res_state' getting too big.
	* resolv/resolv.h (struct __sockaddr_in): New definition.
	(struct __res_state): Use __sockaddr_in instead of sockaddr_in in
	the private parts of the structure to save some space.
	* resolv/res_send.c (res_nsend): Cast &EXT(statp).nsaddrs[ns] to
	(struct sockaddr_in *) in call to sock_eq.
	Use memcpy to copy statp->nsaddr_list[ns] to &EXT(statp).nsaddrs[ns].

2000-07-20  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
2000-07-21 04:12:25 +00:00
Ulrich Drepper
4a900f3be3 Update.
* hesiod/hesiod.c: Avoid emitting rcsid in object file.
1999-08-05 01:33:18 +00:00
Ulrich Drepper
b48abe3cc8 Update.
1998-05-25  Ulrich Drepper  <drepper@cygnus.com>

	* malloc/thread-m.h: Use __mutex_init function in mutex_init macro
	for Hurd.  Patch by Mark Kettenis.

1998-04-18  Gordon Matzigkeit  <gord@profitpress.com>

	 * mach/Machrules (+preinit, +postinit): Define these variables to
	 empty because libhurduser and libmachuser don't need startup
	 files.

1998-04-22  Gordon Matzigkeit  <gord@profitpress.com>

	 * sysdeps/mach/hurd/errlist.c (ERR_REMAP): Use err_get_code
	 instead of a raw bitmask.

1998-05-23  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig (rpath-dirs): New variable.
	(rpath-link): Use it.
	(nssobjdir, nisobjdir, rtobjdir, resolvobjdir): Removed.
	(db-objpfx): Removed.
	* crypt/Makefile: Augment rpath-dirs instead of rpath-link.
	* md5-crypt/Makefile: Likewise.
	* sysdeps/mach/hurd/Makefile: Likewise.

	* Makeconfig (move-if-change): New variable.
	* iconvdata/Makefile (move-if-change): Removed.
	* manual/Makefile (move-if-change): Set only if undefined, use
	local script by default.
	* sunrpc/Makefile (move-if-change): Removed.
	* sysdeps/mach/hurd/Makefile ($(common-objpfx)stamp-errnos): Use
	$(move-if-change).

	 * elf/Makefile: Remove all references to obsolete file
	 $(objpfx)rtldtbl.h.
	 ($(objpfx)trusted-dirs.h): Use stamp file.  Cleanup command.

1998-05-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-close.c (_dl_close): Add debugging message.

1998-05-25  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* csu/Makefile ($(objpfx)version-info.h): Correct sed expression
	to get Linux version and not gcc version.
	Reported by Alan Curry <pacman@cqc.com>.

1998-05-25  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/generic/_strerror.c (__strerror_r): Don't return NULL
	pointers - return unknown error message instead.
	Reported by Alan Curry <pacman@cqc.com>.

1998-05-24  Mark Kettenis  <kettenis@phys.uva.nl>

	* iconvdata/Makefile (modules, sed-generated-headers,
	perl-generated-headers): ibm424.h is perl generated.  Make
	necessary modifications to compile without perl.

1998-05-24  Mark Kettenis  <kettenis@phys.uva.nl>

	* hesiod/hesiod.c (read_config_file): Fix typo.
1998-05-25 10:01:47 +00:00
Ulrich Drepper
dfbad9c855 Update.
1998-02-20 18:43  Ulrich Drepper  <drepper@cygnus.com>

	* hesiod/hesiod.c: Pretty print.  Don't use __ protected names.
	* iconvdata/8bit-gap.c: Likewise.
	* iconvdata/8bit-generic.c: Likewise.
	* iconvdata/iso6937.c: Likewise.
	* iconvdata/iso8859-1.c: Likewise.
	* iconvdata/sjis.c: Likewise.
	* iconvdata/t61.c: Likewise.

1998-02-20  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/bits/termios.h: Replace all negative
	feature tests by positive feature tests.

1998-02-19  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/unlockpt.c: Always return a value.

1998-02-20  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dlvsym.c (dlvsym_doit): More corrections.
	Patch by Andreas Jaeger.
1998-02-20 18:45:36 +00:00
Ulrich Drepper
2604afb1b2 Update.
1997-09-21 03:19  Ulrich Drepper  <drepper@cygnus.com>

	* libio/libio.h: More libstdc++ cleanups.  Define _IO_USE_DTOA if
	_G_HAVE_PRINTF_FP is not defined.
	* libio/strops.c: Undo patch of 1997-07-08 02:18.  Must find a
	different solution for the problem.

	* misc/search.h [__USE_GNU]: Define comparison_fn_t.
	* stdlib/stdlib.h: Define comparison_fn_t only if __COMPAR_FN_T is
	not defined.
	Fix typo.  Pretty print inline functions.

	* sysdeps/i386/i486/string.h (__stpcpy_small): Increment __cp not cp.
	Patch by HJ Lu <hjl@gnu.ai.mit.edu>.

1997-09-20 16:45  Ulrich Drepper  <drepper@cygnus.com>

	* hesiod/hesiod.c (hesiod_init): Use __secure_getenv to get
	HES_DOMAIN environment variable.
	Suggested by Mark Kettenis <kettenis@phys.uva.nl>.

	* hesiod/README.hesiod: A bit of information about Hesiod and how
	to use it.  Written by Mark Kettenis <kettenis@phys.uva.nl>.

1997-09-20 05:15  Ulrich Drepper  <drepper@cygnus.com>

	* manual/maint.texi: Update requirement list.

	* io/ftw.h: Don't use parameter names from global namespace in
	prototypes.

	* stdlib/strtol.c: If used outside glibc handle broken systems
	which have character classification functions which are not 8-bit
	clean gracefully.  Patch by Bruno Haible <haible@ilog.fr>.

1997-09-19 21:42  David S. Miller  <davem@tanya.rutgers.edu>

	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: ssize_t is
	a long long int.

1997-09-19 15:12  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* posix/Makefile (test-srcs): New, set to globtest.

1997-09-20 00:24  Ulrich Drepper  <drepper@cygnus.com>

	* manual/filesys.texi: Document ftw, nftw and needed data types.

1997-09-19 12:53  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/i386/i486/bits/string.h: Fix typo.

1997-09-19 14:11  Ulrich Drepper  <drepper@cygnus.com>

	* io/ftwtest.c (cb): Print level.
	* io/ftwtest-sh: Updated for ftwtest.c change.

	* string/argz.h (__argz_next): Cast NULL to char * to satisfy C++
	compilers.
	Reported by Mirko Streckenbach <mirko@ramz.ing.tu-bs.de>.

	* catgets/catgets.c (catopen): Correctly allocate string of nlspath.
	Reported by Charles C. Fu <ccwf@klab.caltech.edu>.

1997-09-18 13:30  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>

	* sysdeps/i386/init-first.c: Call __getopt_clean_environment with
	additional argument.
	* sysdeps/mach/hurd/i386/init-first.c: Likewise.
	* sysdeps/mach/hurd/mips/init-first.c: Likewise.
	* sysdeps/stub/init-first.c: Likewise.

1997-09-18 03:16  Ulrich Drepper  <drepper@cygnus.com>

	* manual/search.texi: Document lsearch, lfind, the hsearch and
	tsearch functions.

1997-09-18 00:04  Ulrich Drepper  <drepper@cygnus.com>

	* misc/hsearch_r.c (hsearch_r): Only return error for ENTER action
	if the table is full and we *really* have to enter a new entry.

1997-09-17 19:44  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Get rid
	of hack for handling flush opcode.
	Patch by Richard Henderson <rth@cygnus.com>.
1997-09-21 01:47:02 +00:00
Ulrich Drepper
4547c1a410 Update.
1997-09-16 23:48  Ulrich Drepper  <drepper@cygnus.com>

	* libio/fileops.c: Define __set_errno if necessary.
	* libio/libioP.h: Don't use __BEGIN_DECLS/__END_DECLS, expand macros.

1997-09-16 22:03  Ulrich Drepper  <drepper@cygnus.com>

	* string/Makefile (headers): Instead bits/string2.h.
	Reported by David S. Miller <davem@jenolan.rutgers.edu>.

1997-09-16 13:31  David S. Miller  <davem@tanya.rutgers.edu>

	* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: New file.

1997-09-16 17:42  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/bits/select.h (__FD_ZERO): Declare __arr variable
	as of type __fdset *.
	* sysdeps/i386/bits/select.h: Likewise.
	Reported by David S. Miller <davem@jenolan.rutgers.edu>.

1997-09-16 04:32  Ulrich Drepper  <drepper@cygnus.com>

	* hesiod/hesiod.c: Don't use and define cistrcmp.  We have
	strcasecmp.
	(hesiod_init): Use of HES_DOMAIN need not be protected by
	__secure_getenv.
	(hesiod_to_bind): Avoid using strcat and extra strlen calls, use
	stpcpy.

	* string/Makefile (noinl-tester-ENV): New variable to make
	strerror test pass.
	(CFLAGS-noinl-tester): Make sure we test the correct functions.

	* sysdeps/stub/atomicity.h: Fix typo.
	Zack Weinberg <zack@rabi.phys.columbia.edu> told me this twice.

	* manual/string.texi: Document strnlen and mempcpy.
	Tell a bit more about the locale dependence of strcasecmp and
	strncasecmp.

	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Remove ptrace.
	* sysdeps/unix/sysv/linux/sys/ptrace.h (ptrace): Change return
	value type to long int.
	* sysdeps/unix/sysv/linux/ptrace.c: Likewise.  Adopt local variable
	types.
	* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Fix typo.
	Patches by David S. Miller <davem@jenolan.rutgers.edu>.
1997-09-16 21:51:15 +00:00
Ulrich Drepper
61eb22d3a8 Update.
1997-09-16 02:14  Ulrich Drepper  <drepper@cygnus.com>

	Implementation of Hesiod NSS module by Mark Kettenis.
	* hesiod/Makefile: New file.
	* hesiod/hesiod.c: New file.
	* hesiod/hesiod.h: New file.
	* hesiod/hesiod_p.h: New file.
	* hesiod/libnss_hesiod.map: New file.
	* hesiod/nss_hesiod/hesiod-grp.c: New file.
	* hesiod/nss_hesiod/hesiod-pwd.c: New file.
	* hesiod/nss_hesiod/hesiod-service.c: New file.
	* sysdeps/unix/inet/Subdirs: Add hesiod.

	* shlib-versions: Add version number for libnss_hesiod.

	* libio/iolibio.h: Remove definition of _IO_* macros.
	* libio/fileops.c: Define close, fstat, lseek, read, and write as
	macros to use __ protected versions.  Use those functions instead
	of _IO_* functions.
	* libio/iopopen.c: Define _IO_close to close.

	* manual/math.texi: Explain the use of the optimizing inline
	functions.
	Describe rand_r function and tell about SysV RNGs in introduction.

	* resolv/res_send.c (res_send): Use socklen_t type for `fromlen'
	variable.

	* string/Makefile (tests): Add noinl-tester.
	* string/noinl-tester.c: New file.
	* string/tester.c: Add more stpcpy tests for constant arguments for
	all short lengths.

	* string/string.h: Always declare __bzero.
	Describe __NO_STRING_INLINES.
	Always include <bits/string.h>.
	* string/bits/string2.h: Add warning about direct use.
	Change __strcpy_small and __stpcpy_small implementation to use
	macros and provide alternative for platforms which cannot do
	unaligned stores.
	* sysdeps/i386/bits/string.h: Don't define anything is
	__NO_STRING_INLINES is defined.
	* sysdeps/i386/i486/bits/string.h: Change __strcpy_small and
	__stpcpy_small implementation to use macros and provide
	alternative for platforms which cannot do unaligned stores.
	* sysdeps/alpha/bzero.S: Define bzero as weak alias of __bzero.
	* sysdeps/generic/bzero.c: Likewise.
	* sysdeps/i386/bzero.c: Likewise.
	* sysdeps/i386/i586/bzero.S: Likewise.
	* sysdeps/vax/bzero.s: Likewise.

	* sysdeps/generic/bits/select.h: Don't use ugly casts to access array.
	* sysdeps/i386/bits/select.h: Likewise.

	* sysdeps/i386/fpu/bits/mathinline.c (__finite): Relax register
	constraints a bit.
	Don't define and test for _BITS_MATHINLINE_H.  Emit warning if used
	directly and not through math.h.

	* sysdeps/i386/i486/atomicity.h: Change return type of compare_and_swap
	to char to get better code.  Fix typo.
	* sysdeps/stub/atomicity.h: Fix typo.

1997-09-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/stpcpy.c: #undef stpcpy and __stpcpy.

1997-09-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* string/bits/string2.h: Add prototypes to avoid warning.

1997-09-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* string/bits/string2.h (strsep): Fix handling of empty REJECT.
	(__strsep_1c): Handle NULL and empty string.
	(__strsep_g): Likewise.

1997-09-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* catgets/Makefile (extra-objs): Set this instead of generated.

	* md5-crypt/Makefile (extra-objs): Add all object file variants of
	onlymd5-entry.

1997-09-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/generic/sysd-stdio.c (__stdio_read): Fix typo in last
	change.

1997-09-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/m68020/atomicity.h: New file.

1997-09-15 05:11  Ulrich Drepper  <drepper@cygnus.com>

	* posix/Makefile (distribute): Add globtest.c and globtest.sh.
	Compile and run globtest if not cross-compiling.
	* posix/globtest.c: New file.
	* posix/globtest.sh: New file.
	* posix/glob.c: Pretty print preprocessor stuff.
	(glob_in_dir): If PATTERN is not really a pattern still check
	whether it is a real file in the current directory and return
	error if not.
	Reported by Eugene Mamchits <eugin@ips.ras.ru>.

	* libio/fileops.c (_IO_file_sync): Acquire lock before doing the work.
	* libio/ioseekoff.c (_IO_seekoff): Likewise.
	* libio/ioseekpos.c (_IO_seekpos): Likewise.

1997-09-13 18:06  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Prevent configuration for unsupported platforms.

1997-09-13 04:07  Ulrich Drepper  <drepper@cygnus.com>

	* elf/rtld.c (dl_main): Make sure we always have a file argument by
	testing for < 2 arguments after recognizing the options.

1997-09-12 11:47  Fila Kolodny  <fila@ibi.com>

	* string/bits/string2.h (__strsep_1c): Cast out const from __retval.
	(__strsep_g): Likewise.
1997-09-16 00:42:43 +00:00