Commit Graph

220 Commits

Author SHA1 Message Date
Ulrich Drepper
8dd719970a (__nscd_getai): Avoid memory and file descriptor leaks. 2004-11-22 18:41:05 +00:00
Ulrich Drepper
ed2ced8ae3 Update.
2004-11-10  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests): Add tst-exit3.
	* tst-exit3.c: New test.
2004-11-10 07:54:40 +00:00
Ulrich Drepper
5429ff760a (libc_locked_map_ptr): Add new first parameter, used as class for definition.
* nscd/nscd-client.h (libc_locked_map_ptr): Add new first
	parameter, used as class for definition.
	* nscd/nscd_getpw_r.c: Adjust for libc_locked_map_ptr change.
	(pw_map_free): Ensure no crash after memory is freed.
	* nscd/nscd_getgr.c: Likewise.  Make map externally visible.
	* nscd/nscd_gethst.c: Likewise.
	* nscd/nscd_getai.c: Use map from nscd_gethost.c.
	* nscd/nscd_initgroups.c: Use map from nscd_getgr.c.
2004-11-10 07:50:03 +00:00
Ulrich Drepper
457962e5f1 Update.
2004-10-15  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.h (_PATH_NSCD_PASSWD_DB): Move to /var/db.
	(_PATH_NSCD_GROUP_DB): Likewise.
	(_PATH_NSCD_HOSTS_DB): Likewise.
	(_PATH_NSCD_XYZ_DB_TMP): New #define, point to /var/run.
	* nscd/connections.c (nscd_init): Non-persistent database files
	are created with the _PATH_NSCD_XYZ_DB_TMP path.
	* nscd/nscd.init: Create /var/db/nscd if necessary.
2004-10-15 21:20:11 +00:00
Ulrich Drepper
a8a589676c (nscd_init): Non-persistent database files are created with the _PATH_NSCD_XYZ_DB_TMP path. 2004-10-15 21:12:15 +00:00
Ulrich Drepper
59350982d0 Update.
* nscd/Makefile: When using compilers without -fpie support, also
	link with -lselinux if necessary.
	Patch by Arkadiusz Miskiewicz <arekm@pld-linux.org>.
2004-10-14 20:55:58 +00:00
Ulrich Drepper
5ca3d19c74 Update.
2004-10-14  Ulrich Drepper  <drepper@redhat.com>

	* nscd/connections.c (nscd_init): Remove file if not persistent
	and not shared.  Patch by Jerome Borsboom <j.borsboom@erasmusmc.nl>.

	* sysdeps/unix/sysv/linux/i386/setresuid.c: Handle
	defined __NR_setresuid32 && !defined __NR_setresuid.
	* sysdeps/unix/sysv/linux/i386/setresgid.c: Handle
	defined __NR_setresgid32 && !defined __NR_setresgid.

	* sysdeps/sparc/fpu/bits/mathinline.h (__signbitf, __signbit,
	__signbitl, sqrtf, sqrt, sqrtl, fdim, fdimf): Use __NTH macro.

	* sysdeps/generic/errno-loc.c: Don't undef #errno
	if RTLD_PRIVATE_ERRNO.
	* include/errno.h (__errno_location): If RTLD_PRIVATE_ERRNO,
	add attribute_hidden.

	* dlfcn/dlinfo.c (dlinfo_doit): Replace iteration over GL(dl_loaded)
	chain with iteration over all namespaces' _ns_loaded chains.
	* sysdeps/powerpc/powerpc32/dl-machine.c (__elf_preferred_address):
	Likewise.
	* sysdeps/mips/dl-machine.h (elf_machine_runtime_link_map): Likewise.
2004-10-14 16:18:09 +00:00
Ulrich Drepper
695c43708f Update.
2004-10-05  Ulrich Drepper  <drepper@redhat.com>

	* grp/initgroups.c: Remove duplicate group IDs.
	* grp/compat-initgroups.c: Likewise.
	* nscd/initgrcache.c: Likewise.
2004-10-05 15:36:41 +00:00
Ulrich Drepper
6ab5f50de4 Update.
2004-10-05  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/x86_64/sysconf.c (__sysconf): Return 200112L
	for _SC_CPUTIME or _SC_THREAD_CPUTIME.

	* nscd/Makefile (nscd-cflags): Set to -DIS_IN_nscd=1, plus
	-fpie if building PIE.
	(CFLAGS-*.c): Use it.

	* nscd/Makefile (relro-LDFLAGS): Add -Wl,-z,now if have-z-relro.
	($(objpfx)nscd): Add $(relro-LDFLAGS).

	* sysdeps/unix/sysv/linux/i386/sysconf.c: Include hp-timing.h.
	(__sysconf): Return -1 for _SC_CPUTIME or _SC_THREAD_CPUTIME if
	!HP_TIMING_AVAIL.

2004-10-05  Ulrich Drepper  <drepper@redhat.com>

	* nscd/Makefile (distribute): Remove TODO.
	* nscd/TODO: Removed.
2004-10-05 09:26:23 +00:00
Ulrich Drepper
e14bbf537e Update.
* nscd/gai.c: Define __no_netlink_support if NEED_NETLINK is
	defined and __ASSUME_NETLINK_SUPPORT is zero.
	* sysdeps/unix/sysv/linux/Makefile (CFLAGS-gai.c): Add
	-DNEED_NETLINK.
2004-10-04 23:30:29 +00:00
Ulrich Drepper
e582c5eda2 Update.
2004-10-04  Ulrich Drepper  <drepper@redhat.com>

	* malloc/mtrace.pl: Avoid calling location unless it is needed for
	output.  Patch by Edward Bishop <binutils@gmail.com>.

	* nscd/Makefile (CFLAGS-gai.c): Add -fpie.
2004-10-04 23:22:47 +00:00
Ulrich Drepper
94d824f920 Update.
* sysdeps/unix/sysv/linux/ia64/sysconf.c: New file.
	* sysdeps/unix/sysv/linux/ia64/Dist: Add has_cpuclock.c.
	* sysdeps/unix/sysv/linux/ia64/clock_getcpuclockid.c: Move actual
	testing code to...
	* sysdeps/unix/sysv/linux/ia64/has_cpuclock.c: ...here.  New file.
	* sysdeps/unix/sysv/linux/i386/sysconf.c: Add dynamic check for
	_SC_CPUTIME and _SC_THREAD_CPUTIME.
2004-10-04 19:28:07 +00:00
Ulrich Drepper
3078cba2f7 Update.
* nscd/connections.c (start_threads): Use sysconf in case
	_POSIX_CLOCK_SELECTION or _POSIX_MONOTONIC_CLOCK is not greater zero.

	* nscd/nscd.c: Remove getaddrinfo stub definition.
2004-10-04 16:35:54 +00:00
Ulrich Drepper
91a3b2ad2e Update.
* nscd/Makefile (nscd-modules): Add gai.
	* nscd/gai.c: New file.
2004-10-04 09:36:51 +00:00
Ulrich Drepper
48ad81fa2f Update.
2004-10-03  Juerg Billeter  <j@bitron.ch>

	* nscd/nscd_initgroups.c (__nscd_getgrouplist): Return -1 if nscd
	can't be used.
2004-10-03 21:33:28 +00:00
Ulrich Drepper
27e8285643 Update.
Dynamically create new threads if necessary.
	* nscd/connections.c (fd_ready): If no thread available for processing
	the request, create a new one unless the limit is reached.
	(start_threads): Check errors from pthread_create.
	* nscd/nscd.h: Declare max_nthreads.
	* nscd/nscd_conf.c: Parse max-nthreads entry.
	* nscd/nscd.conf: Add max-threads entry.
	* nscd/nscd_stat.c: Print current and maximum number of threads.
2004-10-03 21:11:37 +00:00
Ulrich Drepper
4401d75905 Update.
Implement paranoia mode.
	* nscd/connections.c (nscd_init): Mark database and socket descriptors
	as close on exec.
	(restart): New function.
	(restart_p): New function.
	(nscd_run): Add missing descrement of nready in case readylist is
	empty.
	(main_loop_poll): Call restart_p and restart.
	(main_loop_epoll): Likewise.
	(begin_drop_privileges): Save original UID and GID.
	* nscd/nscd.c: Define new variables paranoia, restart_time,
	restart_interval, oldcwd, old_gid, old_uid.
	(main): Disable paranoia mode if we are not forking.
	(check_pid): When re-execing, the PID file contains the same PID as
	the current process.  Do not fail in this case.
	* nscd/nscd.conf: Add paranoia and restart-interval entries.
	* nscd/nscd.h: Define RESTART_INTERVAL.  Declare new variables.
	* nscd/nscd_conf.c: Parse paranoia and restart-internal configurations.
	* nscd/nscd_stat.c: Print paranoia and restart-internal values.
2004-10-03 19:33:48 +00:00
Ulrich Drepper
fc03df7aa6 Update.
2004-10-03  Ulrich Drepper  <drepper@redhat.com>

	* nscd/connections.c: Implement alternative loop for main thread
	which uses epoll.
	* sysdeps/unix/sysv/linux/Makefile [subdir=nscd]
	(CFLAGS-connections.c): Add -DHAVE_EPOLL.

	* nscd/Makefile (CFLAGS-initgrcache.c): Add to CFLAGS-* variables,
	don't replace old content.
2004-10-03 07:33:54 +00:00
Ulrich Drepper
1945c96f2b Update,
* nscd/connections.c: Rewrite handling of incoming connections.  All
	are handled by one thread which then hands of the descriptors for the
	real work to the worker threads.
	* nscd/Makefile: Link nscd with librt.

	* nscd/selinux.c: Pretty printing.

	* nscd/dbg_log.c (dbg_log): Don't add unnecessary newline to
	output.  Let syslog do the formatting if debug_level == 0.
2004-10-03 01:21:47 +00:00
Ulrich Drepper
1507c81f2a Update.
2004-10-02  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd_helper.c (get_mapping): No need to check timestamp if
	nscd_certainly_running is nonzero.
2004-10-02 19:31:11 +00:00
Ulrich Drepper
f7fa2b1951 (__nscd_getgrouplist): Add assert. 2004-10-01 21:35:08 +00:00
Ulrich Drepper
927f0673b3 Update.
* nscd/nscd_initgroups.c (__nscd_getgrouplist): Always add the
	group the caller provided unless there is a real problem.
2004-10-01 21:24:29 +00:00
Ulrich Drepper
74fef3bbcb Update.
* nscd/nscd.c (termination_handler): Reset timestamp so that
	client immediately stop using the database.

	(__nscd_drop_map_ref): Change second parameter to be a reference to
	* nscd/nscd.h: Add declaration of addinitgroups and
2004-09-30 08:27:48 +00:00
Ulrich Drepper
0891f9706f Update.
2004-09-30  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd-client.h (__nscd_get_map_ref): Drop volatile from last
	parameter.
	(__nscd_drop_map_ref): Change second parameter to be a referenc to
	a variable.  Update variable when cycle count changed.
	* nscd/nscd_helper.c (__nscd_get_map_ref): Remove volatile here, too.
	* nscd/nscd_getai.c: Correctly use __nscd_drop_map_ref.  Reinitialize
	all variables and avoid memory leak in case of retries.
	* nscd/nscd_getgr_r.c: Likewise.
	* nscd/nscd_gethst_r.c: Likewise.
	* nscd/nscd_getpw_r.c: Likewise.
	* nscd/nscd_initgroups.c: Likewise.

	* nscd/nscd.h: Add declaretion of addinitgroups and
	readdinitgroups.
2004-09-30 08:08:40 +00:00
Ulrich Drepper
085f2dd0ad (__nscd_get_map_ref): Drop volatile from last parameter. (__nscd_drop_map_ref): Change second parameter to be a referenc to a variable. Update variable when cycle count changed. 2004-09-30 08:03:44 +00:00
Andreas Jaeger
00ce1b01e3 (CFLAGS-nscd_initgroups.c): Set to -fpie. (CFLAGS-initgrcache.c): Likewise. 2004-09-30 07:51:30 +00:00
Ulrich Drepper
26235c7c45 Add declaretion of addinitgroups and readdinitgroups. 2004-09-30 07:15:40 +00:00
Ulrich Drepper
af38d7ce63 Update.
2004-09-29  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd_gethst_r.c (nscd_gethst_r): Use correct constant for
	testing result of __nscd_get_map_ref.
2004-09-30 05:16:40 +00:00
Ulrich Drepper
f7e7a39681 Update.
* grp/initgroups.c: Move compat_call implementation...
	* grp/compat-initgroups.c: ...to here.  New file.
	* grp/Makefile (distribute): Add compat-initgroups.c.
	(CFLAGS-initgroups.c): Add -DUSE_NSCD=1.
	* mscd/initgrcache.c: New file.
	* nscd/nscd_initgroups.c: New file.
	* nscd/Makefile (routines): Add nscd_initgroups.
	(nscd-modules): Add initgrcache.
	* nscd/cache.c (prune_cache): Add support for INITGROUPS entries.
	* nscd/connections.c: Handle INITGROUPS requests.
	* nscd/nscd-client.h: Define INITGROUPS, initgr_response_header.
	Add initgrdata element to struct datahead.  Fix typo in comment.
	* nscd/nscd_proto.h: Declare __nscd_getgrouplist.  Fix parameter
	type in __nscd_getgrgrid_r.
	* nscd/selinux.c (perms): Add INITGROUPS entry.

	* nscd/nscd_getai.c: No need to include <sys/mman.h>.

	* sunrpc/get_myaddr.c (get_myaddress): Account for interfaces without
	assigned addresses.
	* sunrpc/pmap_clnt.c (__get_myaddress): Likewise.
	* sunrpc/pmap_rmt.c (getbroadcastnets): Likewise.
	* sunrpc/clnt_udp.c (is_network_up): Likewise.
2004-09-30 02:24:51 +00:00
Ulrich Drepper
04c785b27f Update.
* nscd/nscd.c: Define getaddrinfo hidden so that it is never found
	outside.
2004-09-29 22:47:22 +00:00
Ulrich Drepper
8117719197 Update.
* nscd/nscd_getai.c: Use NO_MAPPING instead of MAP_FAILED for test
	of failing __nscd_get_map_ref.  Fix a few typos.
2004-09-29 05:59:26 +00:00
Ulrich Drepper
3c12b91ade Update.
2004-09-20  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.c (options): Mark S option as hidden.
	(parse_opt): When S option is used, print warning message.
	* nscd/grpcache.c (adgrptbyX): Don't handle secure mode.
	* nscd/hstcache.c (addhstbyX): Don't handle secure mode.
	* nscd/aicache.c (addhstaiX): Don't handle secure mode.
	* nscd/pwdcache.c (addpwbyX): Don't handle secure mode.
2004-09-20 23:16:22 +00:00
Ulrich Drepper
2edb61e3f9 Update.
* sysdeps/unix/sysv/linux/setegid.c [HAVE_PTR__NPTL_SETXID]: Call
	callback to set IDs in all other threads as well.
	* sysdeps/unix/sysv/linux/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setegid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
	* sysdeps/unix/sysv/linux/setuid.c: New file.
	* sysdeps/unix/sysv/linux/setgid.c: New file.
	* sysdeps/unix/sysv/linux/setreuid.c: New file.
	* sysdeps/unix/sysv/linux/setregid.c: New file.
	* sysdeps/unix/sysv/linux/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Define INTERNAL_SYSCALL_NCS.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c: Use x86 version.
	* sysdeps/unix/sysv/linux/sparc/sparc32/seteuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresgid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setresuid.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list: Remove setresgid
	and setresuid.
	* nscd/aicache.c: Use pthread_seteuid_np instead of seteuid.
	* nscd/grpcache.c: Likewise.
	* nscd/hstcache.c: Likewise.
	* nscd/pwdcache.c: Likewise.
2004-09-20 00:16:11 +00:00
Ulrich Drepper
f731666f48 Update.
2004-09-17  Jakub Jelinek  <jakub@redhat.com>

	* nscd/nscd.c (parse_opt): Write arg string instead of (void *)
	key to the socket.
2004-09-17 19:51:26 +00:00
Ulrich Drepper
74a30a5851 Update.
2004-09-16  Ulrich Drepper  <drepper@redhat.com>

	* configure.in: Add test for required SELinux features.
	* config.make.in: Add have-selinux entry.
	* config.h.in: Add HAVE_SELINUX entry.
	* nscd/Makefile (nscd-modules): Add selinux.
	(CFLAGS-selinux.c): Add -fpie.
	Define selinux-LIBS and use in link line.
	* nscd/connections.c (handle_request): Check access SELinux permissions
	before processing request.
	* nscd/nscd.c (main): Initialize selinux_enabled and stop avc thread.
	* nscd/nscd_stat.c: Transmit and print AVC statistics.
	* nscd/selinux.c: New file.
	* nscd/selinux.h: New file.

2004-09-16  Jakub Jelinek  <jakub@redhat.com>

	* nscd/nscd_helper.c (__nscd_unmap, get_mapping): Use __munmap
	instead of munmap.

	* nscd/Makefile (CFLAGS-aicache.c): Set to -fpie.

2004-09-16  Thorsten Kukuk  <kukuk@suse.de>

	* sysdeps/posix/getaddrinfo.c (gaih_inet): Check
	__nss_not_use_nscd_hosts variable if nscd should be used or not.

2004-09-16  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd_proto.h: Define NSS_NSCD_RETRY.
	Add __nscd_getai prototype.
	* nss/getXXbyYY_r.c: Remode definition of NSS_NSCD_RETRY.
	* nscd/nscd-client.h: Remove __nscd_getai prototype.
	* nscd/nscd_getai.c: Include nscd_proto.h.

	* elf/ldd.bash.in: Add support for SELinux environments.
	Patch by Stephen Smalley <sds@epoch.ncsc.mil>.
2004-09-17 00:04:18 +00:00
Ulrich Drepper
62417d7ee8 iAdd __nscd_getai prototype. 2004-09-16 22:54:54 +00:00
Ulrich Drepper
d1fe1f2219 Update.
* nscd/aicache.c: Prefer using gethostbyname3_r NSS callback to also
	get ttl and canonical name.  Use these two values.
	* resolv/Versions: Export _nss_dns_gethostbyname3_r from libnss_dns.
	* resolv/nss_dns/dns-host.c (getanswer_r): Take two new parameters.
	If nonnull fill with TTL and pointer to canonical name respectively.
	(_nss_dns_gethostbyaddr_r): Pass NULL in new parameters of getanswer_r.
	(_nss_dns_gethostbyname2_r): Just wrapper around
	_nss_dns_gethostbyname3_r.
	(_nss_dns_gethostbyname3_r): Renamed from _nss_dns_gethostbyname2_r.
	Take two new parameters which as passed to getanswer_r.
2004-09-15 10:10:05 +00:00
Ulrich Drepper
d19687d6eb Update.
2004-09-15  Ulrich Drepper  <drepper@redhat.com>

	* nscd/Makefile (rountines): Add nscd_getai.
	(nscd-modules): Add aicache.
	* nscd/aicache.c: New file.
	* nscd/nscd_getai.c: New file.
	* nscd/cache.c (prune_cache): Handle GETAI request type.
	* nscd/connections.c: Add GETAI support in request handling.
	* nscd/nscd-client.h (request_type): Add GETAI.
	Define ai_response_header and struct nscd_ai_result types.
	(struct datahead): Add aidata field.
	Declare __nscd_getai.
	* nscd/nscd.c: Add getaddrinfo definition to catch problems.
	* nscd/nscd.h: Declare addhstai and readdhstai.

	* sysdeps/posix/getaddrinfo.c: Add support for using cached results.

	* nscd/nscd-client.h  (struct datahead): Use uint8_t instead of bool.
2004-09-15 08:25:49 +00:00
Ulrich Drepper
aadd7d9d26 Update.
2004-09-13  Thorsten Kukuk  <kukuk@suse.de>

	* nscd/nscd_stat.c: Don't access dbs[cnt].head for disabled services.

	* nscd/nscd.init: Fix path to socket.
2004-09-13 17:24:41 +00:00
Ulrich Drepper
407c4b9a19 UPdate.
* nscd/nscd_helper.c (get_mapping): Correctly check cmsg length.
	Avoid file descriptor leak in case of size mismatch.
2004-09-13 06:07:02 +00:00
Ulrich Drepper
568470bbff Update.
* nscd/mem.c (gc): Add casts to avoid warnings.
2004-09-13 05:56:39 +00:00
Ulrich Drepper
404db64ae7 Update.
* nscd/nscd-client.h: Fix database structure layout for biarch.
2004-09-13 05:52:46 +00:00
Ulrich Drepper
cf244b74a0 Update.
2004-09-12  Ulrich Drepper  <drepper@redhat.com>

	* nscd/pwdcache.c (cache_addpw): Sync also negative results to disk.
	* nscd/grpcache.c (cache_addgr): Likewise.
	* nscd/hstcache.c (cache_addhst): Likewise.
2004-09-12 10:10:48 +00:00
Ulrich Drepper
8c89236fd3 (cache_addhst): Sync also negative results to disk. 2004-09-12 10:04:03 +00:00
Ulrich Drepper
72ae1e97d0 Update.
* nscd/connections.c (nscd_run): Call setup_thread only for enabled
	databases.
2004-09-11 20:48:01 +00:00
Ulrich Drepper
3418007ed6 Update.
2004-09-10  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd.c (pagesize_m1): New variable.
	(main): Initialize it.
	* nscd/nscd.h: Declare pagesize_m1.
	* nscd/hstcache.c: Pass correctly aligned address to msync.
	* nscd/grpcache.c: Likewise.
	* nscd/pwdcache.c: Likewise.
2004-09-10 23:56:29 +00:00
Ulrich Drepper
d13a3c5792 Update.
2004-09-10  Ulrich Drepper  <drepper@redhat.com>

	* nscd/nscd_stat.c: Improve output by also printing .shared and
	.persistent.

	* nscd/connections.c: Allow cache sharing to be really disabled.
2004-09-10 20:31:41 +00:00
Andreas Jaeger
1f9c1540bf (CFLAGS-nscd_setup_thread.c): Set to -fpie. 2004-09-09 06:35:38 +00:00
Ulrich Drepper
cf6f93d426 Update.
* nscd/nscd-client.h: Add a few #includes.
2004-09-08 19:49:17 +00:00
Ulrich Drepper
67a0b49db3 * sysdeps/generic/nscd_setup_thread.c: New file.
* sysdeps/unix/sysv/linux/nscd_setup_thread.c: New file.
2004-09-08 18:03:21 +00:00