Age | Commit message (Collapse) | Author |
|
This patch consolidates the code to initialize the header of a dataset
into a single set of functions (one for positive and another for
negative datasets) primarily to reduce repetition of code. The
secondary reason is to simplify Patch 2/2 which fixes the problem of
an uninitialized byte in the header by initializing an unused field in
the structure and hence preventing a possible data leak into the cache
file.
|
|
|
|
|
|
|
|
|
|
This reverts commit dd31ac7a8e0d4cc24eee6815f9101caa5aa64291.
|
|
* nscd/grpcache.c (cache_addgr): Properly check for short write.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
* nscd/pwdcache.c (cache_addpw): Likewise.
* nscd/servicescache.c (cache_addserv): Likewise. Don't write
more than recsize.
|
|
|
|
|
|
|
|
Cleanup and optimize last patch. Add timeout fixes also to the
services cache.
|
|
|
|
|
|
The nscd/*cache.c files contain assert()s, writeall() and sendfileall() calls
that invalidly use together &dataset->resp and total where either dataset or
dataset->head.recsize should be used instead one of the components. In the
writeall() and sendfileall() cases, it is unlikely to matter in practice, but
the assertions can fail sometimes without a proper reason.
|
|
This reverts commit 137028b4d7e50f71906c1656c27079eac5a1d085.
Conflicts:
ChangeLog
|
|
The commit 20e498bd removes the pthread_mutex_rdlock() calls, but not the
corresponding pthread_mutex_unlock() calls. Also, the database lock is never
unlocked in one branch of the mempool_alloc() if.
I think unreproducible random assert(dh->usable) crashes in prune_cache() were
caused by this. But an easy way to make nscd threads hang with the broken
locking was.
|
|
2009-02-13 Ulrich Drepper <drepper@redhat.com>
[BZ #5381]
* nscd/nscd.h: Remove definitions and declarations for mem_in_flight.
Change mempool_alloc prototype.
* nscd/mem.c (gc): Don't handle mem_in_flight.
(mempool_alloc): Third parameter now only indicates whether this is the
first call (to allocate data) or not. If it is, get db rdlock.
Release it on error. Don't handle mem_in_flight.
* nscd/aicache.c (addhstaiX): Mark he parameter as const.
Adjust third parameter of mempool_alloc calls.
Nothing to do here in case mempool_alloc fails.
Avoid local variable shadowing parameter. No need to get db rdlock
before calling cache_add.
* nscd/cache.c (cache_add): Adjust call to mempool_alloc. There is
no mem_in_flight array anymore.
* nscd/connections.c: Remove definition and handling of mem_in_flight.
* nscd/grpcache.c (cache_addgr): Adjust third parameter of
mempool_alloc calls. Mark he parameter as const. Nothing to do here
in case mempool_alloc fails. No need to get db rdlock before calling
cache_add.
* nscd/hstcache.c (cache_addhst): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
* nscd/servicescache.c (cache_addserv): Likewise.
* nscd/pwdcache.c (cache_addpw): Likewise. Remove some debugging code.
|
|
fixed-size portion of the record.
* nscd/servicescache.c (cache_addserv): Likewise.
* nscd/pwdcache.c (cache_addpw): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
|
|
whether this is in response of a cache refill. Check alignment
of package data. Revamp waking of pruning thread.
(prune_cache): Small optimization.
* nscd/nscd.h: Adjust cache_add prototypes.
* nscd/aicache.c: Adjust cache_add calls.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
* nscd/servicescache.c: Likewise.
* nscd/connections.c (restart): Really disable cache use before
exec attempt. If it fails, reenable cache.
(nscd_run_prune): Initialize wakeup_time. After wakeup, set wakeup
time to max to be able to notice concurrent cache additions. Unlock
prune_lock while performing gc. Afterwards compute wakeup time with
current wakeup_time value in mind.
|
|
is the first use of the record, mark it as unusable.
* nscd/aicache.c: Don't touch the dataset after cache_add returns
reporting a failure.
* nscd/grpcache.c: Likewise
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
* nscd/servicecache.c: Likewise.
|
|
2008-04-15 Ulrich Drepper <drepper@redhat.com>
[BZ #5209]
* sysdeps/unix/sysv/linux/times.c: New file.
[BZ #5381]
* nscd/nscd.h: Define enum in_flight, mem_in_flight, and
mem_in_flight_list variables. Add new parameter to mempool_alloc
prototype.
* nscd/mem.c (mempool_alloc): Take additional parameter. Initialize
appropriate mem_in_flight element.
(gc): Take allocations which have not yet been committed to the
database into account.
* nscd/cache.c (cache_add): Add new parameter to mempool_alloc call.
Reset mem_in_flight before returning.
* nscd/connections.c (nscd_run_worker): Initialize mem_in_flight and
cue it up in mem_in_flight_list.
* nscd/aicache.c: Adjust mempool_alloc call.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
* nscd/servicescache.c: Likewise.
* nscd/Makefile (nscd-flags): Until ld is fixed, use -fpic instead
of -fpie.
* nscd/connections.c (handle_request): Provide better error message
in case SELinux forbids the service.
* version.h (VERSION): Bump to 2.8.90.
|
|
* nscd/hstcache.c (cache_addhst): Likewise.
* nscd/grpcache.c (cache_addgr): Likewise.
* nscd/servicescache.c (cache_addserv): Likewise.
* nscd/pwdcache.c (cache_addpw): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
|
|
* elf/readlib.c: Likewise.
* elf/chroot_canon.c: Likewise.
* elf/cache.c: Likewise.
* nscd/mem.c: Likewise.
* nscd/getpwuid_r.c: Likewise.
* nscd/grpcache.c: Likewise.
* nscd/aicache.c: Likewise.
* nscd/getsrvbynm_r.c: Likewise.
* nscd/nscd.c: Likewise.
* nscd/servicescache.c: Likewise.
* nscd/getsrvbypt_r.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/gethstbyad_r.c: Likewise.
* nscd/gethstbynm2_r.c: Likewise.
* nscd/getgrnam_r.c: Likewise.
* nscd/nscd_setup_thread.c: Likewise.
* nscd/getpwnam_r.c: Likewise.
* nscd/gai.c: Likewise.
* nscd/connections.c: Likewise.
* nscd/dbg_log.c: Likewise.
* nscd/cache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/nscd_conf.c: Likewise.
* nscd/getgrgid_r.c: Likewise.
* nscd/pwdcache.c: Likewise.
* catgets/gencat.c: Likewise.
* locale/programs/linereader.h: Likewise.
* locale/programs/locarchive.c: Likewise.
* locale/programs/ld-paper.c: Likewise.
* locale/programs/locfile-kw.h: Likewise.
* locale/programs/ld-address.c: Likewise.
* locale/programs/xmalloc.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* locale/programs/localedef.c: Likewise.
* locale/programs/simple-hash.c: Likewise.
* locale/programs/xstrdup.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/locfile-kw.gperf: Likewise.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/charmap-kw.gperf: Likewise.
* locale/programs/charmap.h: Likewise.
* locale/programs/charmap-kw.h: Likewise.
* locale/programs/config.h: Likewise.
* locale/programs/locfile.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/charmap.c: Likewise.
* locale/programs/ld-messages.c: Likewise.
* locale/programs/repertoire.h: Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/ld-name.c: Likewise.
* locale/programs/linereader.c: Likewise.
* locale/programs/locfile.h: Likewise.
* locale/programs/3level.h: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-measurement.c: Likewise.
* locale/programs/charmap-dir.c: Likewise.
* locale/programs/ld-identification.c: Likewise.
* locale/programs/localedef.h: Likewise.
* locale/programs/charmap-dir.h: Likewise.
* locale/programs/repertoire.c: Likewise.
* locale/programs/simple-hash.h: Likewise.
* locale/programs/ld-telephone.c: Likewise.
* locale/programs/locale-spec.c: Likewise.
* locale/programs/locfile-token.h: Likewise.
* posix/getconf.c: Likewise.
* iconv/dummy-repertoire.c: Likewise.
* iconv/iconv_charmap.c: Likewise.
* iconv/iconvconfig.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* malloc/memusagestat.c: Likewise.
* sysdeps/unix/sysv/linux/nscd_setup_thread.c: Likewise.
|
|
Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/i386/lowlevellock.h
(LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
(lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
lll_robust_mutex_cond_lock, lll_mutex_timedlock,
lll_robust_mutex_timedlock, lll_mutex_unlock,
lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
Add _L_*_ symbols around the subsection.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
2006-03-03 Jakub Jelinek <jakub@redhat.com>
Roland McGrath <roland@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
(LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
(lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
lll_robust_mutex_cond_lock, lll_mutex_timedlock,
lll_robust_mutex_timedlock, lll_mutex_unlock,
lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
Add _L_*_ symbols around the subsection.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
|
|
status of NSS calls, not the number of returned entries.
|
|
* ncsd/aicache.c: Don't use sendfile for records on the stack.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
Patch by dmueller@suse.com.
|
|
* elf/cache.c: Likewise.
* elf/chroot_canon.c: Likewise.
* elf/ldconfig.c: Likewise.
* elf/readlib.c: Likewise.
* iconv/dummy-repertoire.c: Likewise.
* iconv/iconv_charmap.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* iconv/iconvconfig.c: Likewise.
* locale/programs/3level.h: Likewise.
* locale/programs/charmap-dir.c: Likewise.
* locale/programs/charmap-dir.h: Likewise.
* locale/programs/charmap-kw.gperf: Likewise.
* locale/programs/charmap.c: Likewise.
* locale/programs/charmap.h: Likewise.
* locale/programs/config.h: Likewise.
* locale/programs/ld-address.c: Likewise.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/ld-identification.c: Likewise.
* locale/programs/ld-measurement.c: Likewise.
* locale/programs/ld-messages.c: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-name.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/ld-paper.c: Likewise.
* locale/programs/ld-telephone.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* locale/programs/linereader.c: Likewise.
* locale/programs/linereader.h: Likewise.
* locale/programs/locale-spec.c: Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/localedef.c: Likewise.
* locale/programs/localedef.h: Likewise.
* locale/programs/locarchive.c: Likewise.
* locale/programs/locfile-kw.gperf: Likewise.
* locale/programs/locfile-token.h: Likewise.
* locale/programs/locfile.c: Likewise.
* locale/programs/locfile.h: Likewise.
* locale/programs/repertoire.c: Likewise.
* locale/programs/repertoire.h: Likewise.
* locale/programs/simple-hash.c: Likewise.
* locale/programs/simple-hash.h: Likewise.
* locale/programs/xmalloc.c: Likewise.
* locale/programs/xstrdup.c: Likewise.
* malloc/memusagestat.c: Likewise.
* nscd/aicache.c: Likewise.
* nscd/cache.c: Likewise.
* nscd/connections.c: Likewise.
* nscd/dbg_log.c: Likewise.
* nscd/gai.c: Likewise.
* nscd/getgrgid_r.c: Likewise.
* nscd/getgrnam_r.c: Likewise.
* nscd/gethstbyad_r.c: Likewise.
* nscd/gethstbynm2_r.c: Likewise.
* nscd/getpwnam_r.c: Likewise.
* nscd/getpwuid_r.c: Likewise.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/mem.c: Likewise.
* nscd/nscd.c: Likewise.
* nscd/nscd_conf.c: Likewise.
* nscd/pwdcache.c: Likewise.
* posix/getconf.c: Likewise.
* sysdeps/generic/nscd_setup_thread.c: Likewise.
* sysdeps/unix/sysv/linux/nscd_setup_thread.c: Likewise.
|
|
(handle_request): Use it instead of sendfile call.
* nscd/nscd-client.h: Declare sendfileall.
* nscd/aicache.c: Use sendfileall instead of sendfile.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/pwdcache.c: Likewise.
|
|
(struct shmid_ds): Use it for shm_nattch field.
2005-11-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/futimesat.c (futimesat): If FILE is NULL,
set access and modification times of the file referenced by FD.
* sysdeps/generic/futimesat.c (futimesat): Don't return EINVAL if
FILE is NULL. Don't check FD if FILE is absolute path.
2005-11-19 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd_gethst_r.c (nscd_gethst_r): Avoid unnecesary read call
if there are no aliases.
* sysdeps/unix/sysv/linux/Makefile (CFLAGS-connections.c,
CFLAGS-pwdcache.c, CFLAGS-grpcache.c, CFLAGS-hstcache.c,
CFLAGS-aicache.c, CFLAGS-initgrcache.c): Add -DHAVE_SENDFILE.
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_SENDFILE):
Define.
* nscd/pwdcache.c [HAVE_SENDFILE]: Include <sys/sendfile.h> and
<kernel-features.h>.
[HAVE_SENDFILE] (cache_addpw): Use sendfile to transmit positive
result.
* nscd/grpcache.c: Likewise.
* nscd/hstcache.c: Likewise.
* nscd/aicache.c: Likewise.
* nscd/initgrcache.c: Likewise.
* nscd/connectionc.c: Likewise.
|
|
(dbs): Initialize max_db_size fields.
(nscd_init): When mapping the database, use max_db_size as the
mapping size even if it is bigger than the file size.
* nscd/mem.c (mempool_alloc): When resizing the file make sure the
limit in max_db_size is not exceeded. Don't use mremap, just
posix_fallocate is enough (according to Linus). Use posix_fallocate
correctly.
* nscd/nscd.conf: Add max-db-size parameters.
* nscd/nscd.h (struct database_dyn): Add max_db_size field.
Define DEFAULT_MAX_DB_SIZE and DEFAULT_DATASIZE_PER_BUCKET.
Temporarily define TEMP_FAILURE_RETRY_VAL here.
* nscd/nscd_conf.c (nscd_parse_file): Parse max-db-size parameter
and add sanity checks for it.
* nscd/aicache.c (addhstaiX): Use send with MSG_NOSIGNAL not write to
send reply.
* nscd/connection.c (writeall): Likewise.
(handle_request): Likewise.
* nscd/grpcache.c (cache_addgr): Likewise.
* nscd/hstcache.c (cache_addhst): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
* nscd/nscd.c (parse_opt): Likewise.
* nscd/nscd_stat.c (send_stats): Likewise.
(receive_print_stats): Likewise.
* nscd/pwdcache.c (cache_addpw): Likewise.
|
|
(__readall, __readvall, writeall): New prototypes.
* nscd/connections.c (writeall): New function.
(handle_request): Use it.
* nscd/aicache.c (addhstaiX): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
* nscd/hstcache.c (cache_addhst): Likewise.
* nscd/grpcache.c (cache_addgr): Likewise.
* nscd/pwdcache.c (cache_addpw): Likewise.
* nscd/nscd_helper.c (__readall, __readvall): New functions.
* nscd/nscd_getai.c (__nscd_getai): Use them.
* nscd/nscd_getpw_r.c (__nscd_getpw_r): Likewise.
* nscd/nscd_getgr_r.c (__nscd_getgr_r): Likewise.
* nscd/nscd_gethst_r.c (__nscd_gethst_r): Likewise.
* nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise.
|
|
|
|
|
|
2004-10-05 Ulrich Drepper <drepper@redhat.com>
* grp/initgroups.c: Remove duplicate group IDs.
* grp/compat-initgroups.c: Likewise.
* nscd/initgrcache.c: Likewise.
|
|
* 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.
|