2006-10-12 Richard Sandiford <richard@codesourcery.com>
[BZ #3352]
* elf/dl-minimal.c (realloc): Let malloc() return a new pointer,
and use memcpy() if it does.
components which lack them.
* nis/nis_subr.c (nis_getnames): Make sure that we always return
at least one entry consisting of the parameter concatenated with
the domain.
Implement reference counting of scope records.
* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
from the list in objects which remain. Always allocate new scope
record.
* elf/dl-open.c (dl_open_worker): When growing array for scopes,
don't resize, allocate a new one.
* elf/dl-runtime.c: Update reference counters before using a scope
array.
* elf/dl-sym.c: Likewise.
* elf/dl-libc.c: Adjust for l_scope name change.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* include/link.h: Inlcude <rtld-lowlevel.h>. Define struct
r_scoperec. Replace r_scope with pointer to r_scoperec structure.
Add l_scoperec_lock.
* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
* sysdeps/generic/rtld-lowlevel.h: New file.
* include/atomic.h: Rename atomic_and to atomic_and_val and
atomic_or to atomic_or_val. Define new macros atomic_and and
atomic_or which do not return values.
* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
Various cleanups.
* sysdeps/i386/i486/bits/atomic.h: Likewise.
2006-10-06 Ulrich Drepper <drepper@redhat.com>
* po/pl.po: Update from translation team.
* nscd/nscd.c (main): Fix typo in message.
Patch by Jakub Bogsz <qboosh@pld-linux.org>.
in oldtotal and newtotal calculation.
* nscd/nscd-client.h (struct mapped_database): Add datasize
field.
* nscd/nscd_helper.c (get_mapping): Initialize datasize field.
(__nscd_get_map_ref): Get a new mapping even if mapping's data_size
increased.
(__nscd_cache_search): Add checks to make sure we never reference
data beyond the current mapping.
2006-09-29 Ulrich Drepper <drepper@redhat.com>
[BZ #3273]
* nscd/nscd_initgroups.c (__nscd_getgrouplist): It is OK to have
found no group members.
Patch by Petr Baudis.
2006-09-29 Jakub Jelinek <jakub@redhat.com>
* elf/rtld.c (_dl_start_final): If not USE___THREAD, don't
assert bootstrap_map.l_tls_modid is zero.
(_dl_start): Initialize bootstrap_map.l_tls_modid to 0
if USE___THREAD.
2006-09-25 Jakub Jelinek <jakub@redhat.com>
[BZ #3252]
* sysdeps/unix/sysv/linux/powerpc/fchownat.c (fchownat): Handle only
fchownat syscall and __ASSUME_LCHOWN_SYSCALL case inline, call
__{,l}chown to handle the rest.
* sysdeps/unix/sysv/linux/i386/fchownat.c (fchownat): Handle only
fchownat syscall and __ASSUME_32BITUIDS case inline, call
__{,l}chown to handle the rest.
* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Include
i386/fchownat.c.
* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Likewise.
* sysdeps/unix/sysv/linux/sh/fchownat.c: Likewise.
[BZ #3253]
* posix/glob.c (glob_in_dir): Don't alloca one struct globlink at a
time, rather allocate increasingly bigger arrays of pointers, if
possible with alloca, if too large with malloc.
2006-09-24 Jakub Jelinek <jakub@redhat.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Updated.
* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Fix 2 typos.
2006-06-17 Joseph S. Myers <joseph@codesourcery.com>
[BZ #2592]
* math/libm-test.inc (lrint_test_tonearest): New function.
(lrint_test_towardzero): New function.
(lrint_test_downward): New function.
(lrint_test_upward): New function.
(main): Run these new tests.
* sysdeps/ieee754/dbl-64/s_llrint.c (__llrint): Correct rounding
of values near to 0.
(two52): Use double not long double.
* sysdeps/ieee754/dbl-64/s_lrint.c (__lrint): Likewise.
* sysdeps/ieee754/flt-32/s_llrintf.c (__llrintf): Likewise.
(two23): Use float not double.
* sysdeps/ieee754/flt-32/s_lrintf.c (__lrintf): Likewise.
(two23): Use float not double.
* sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Likewise.
* sysdeps/ieee754/ldbl-128/s_lrintl.c (__lrintl): Likewise.
* sysdeps/ieee754/ldbl-96/s_llrintl.c (__llrintl): Likewise.
* sysdeps/ieee754/ldbl-96/s_lrintl.c (__lrintl): Likewise.
Cast sp to unsigned long to avoid compiler warning.
Use __makecontext_ret function instead of a trampoline on the stack.
(__makecontext_ret): New function.
* sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c: Likewise.
sure no reference to the unloaded map's search list remains in the
dependency's scope.
2006-09-16 Jakub Jelinek <jakub@redhat.com>
* elf/Makefile: Add rules to build and run unload7 test.
* elf/unload7.c: New test.
* elf/unload7mod1.c: New file.
* elf/unload7mod2.c: New file.
Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 4 new cap
names to the beginning. Rename "cell" to "cellbe".
(_dl_powerpc_platforms): New.
* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
(HWCAP_IMPORTANT): Remove power{4,5,5+} and cell.
(_DL_PLATFORMS_COUNT, _DL_FIRST_PLATFORM): Define.
(_DL_HWCAP_PLATFORM): Define to new mask.
(_dl_platform_string, _dl_string_platform): New functions.
* sysdeps/powerpc/sysdep.h (PPC_FEATURE_BOOKE, PPC_FEATURE_SMT,
PPC_FEATURE_ICACHE_SNOOP, PPC_FEATURE_ARCH_2_05): Define.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela):
Ensure relocation doesn't clobber any bits outside of the
immediate field for R_SPARC_TLS_LE_HIX22, R_SPARC_WDISP30,
R_SPARC_HI22 and R_SPARC_H44.
* malloc/malloc.c (sYSMALLOc): Only call grow_heap if
(long) (MINSIZE + nb - old_size) is positive.
* malloc/arena.c (grow_heap): When growing bail even if new_size
is negative.
at the end of the RO segment.
2006-09-04 Ulrich Drepper <drepper@redhat.com>
* elf/do-lookup.h (do_lookup_x): Initialize symidx in case the new
style hash table format is used.
2006-09-04 Jakub Jelinek <jakub@redhat.com>
ld.so.
* malloc/malloc.c (_int_malloc): Use full list insert and not
shortcut which assumes the list is empty for large requests
too.
* elf/tst-addr1.c (do_test): Allow i.dli_sname "_IO_printf".
only if herrno is NETDB_INTERNAL. Handle errors other than
ERANGE outside of the loops, handle TRY_AGAIN.
* locale/programs/ld-ctype.c (translit_flatten): Issue error
if other's ctype category was missing.
* locale/programs/ld-collate.c (collate_read): Return if
copy_locale's collate category is missing.
2006-08-27 Ulrich Drepper <drepper@redhat.com>
[BZ #2684]
* malloc/malloc.c (public_rEALLOc): Try harder by using other
arenas if allocation failed.
Patch mostly by Jan Edler <jan.edler@indexengines.com>.
waste bins[0..1].
(malloc_state): Reduce bins size by 2.
(_int_malloc): Fix test for large enough buffer for early termination.
When no unsorted block matches perfectly and an exiting block has
to be split, use full list insert and not shortcut which assumes
the list is empty.
2006-08-24 Ulrich Drepper <drepper@redhat.com>
[BZ #2683]
* elf/dl-addr.c (_dl_addr): Don't ignore all undefined symbols.
If symbol has a value use it.
* elf/tst-dladdr1.c: New file.
* elf/Makefile: Add rules to build and run tst-addr1.
2006-08-24 Ulrich Drepper <drepper@redhat.com>
[BZ #2734]
* sysdeps/i386/bits/byteswap.h (__bswap_32): Use same conditions
as in the x86-64 code to use bswap.
platforms define as 1MB. For 64-bit platforms as 32MB. The lower
limit is needed to avoid the exploding of the address space
requirement for secondary heaps.
* malloc/arena.c (HEAP_MAX_SIZE): Define using
DEFAULT_MMAP_THRESHOLD_MAX if it is defined.
tells us when not finding a charmap file is an error.
* locale/programs/charmap.h: Adjust charmap_read prototype.
* iconv/iconv_prog.c (main): Tell charmap_read it's no error if we
cannot find a charmap.
* locale/programs/localedef.c (main): Adjust charmap_read call.
2006-08-14 Ulrich Drepper <drepper@redhat.com>
[BZ #1996]
* libio/memstream.c (open_memstream): Allocate initial buffer with
calloc.
* libio/wmemstream.c (open_wmemstream): Likewise.
* libio/strops.c: Pretty printing.
(_IO_str_overflow): Clear uninitialized part of the new buffer.
(enlarge_userbuf): New function.
(_IO_str_seekoff): Call it if seek position is larger than current
buffer.
* libio/wstrops.c: Likewise.
* libio/vasprintf.c: Add comment as to why we do not have to use
calloc instead of malloc to allocate initial buffer.
* libio/Makefile (tests): Add bug-memstream1 and bug-wmemstream1.
* libio/bug-memstream1.c: New file.
* libio/bug-wmemstream1.c: New file.
2006-06-08 Joseph Myers <jsm28@gcc.gnu.org>
[BZ #2832]
* math/gen-libm-test.pl (clean_up_number): Do not remove trailing
0s from integers.
2006-08-13 Ulrich Drepper <drepper@redhat.com>
[BZ #2987]
* sysdeps/unix/sysv/linux/clock_settime.c: Add code to use syscall
for CPU clocks.
* sysdeps/unix/clock_settime.c: Add support for platform-specific
setting of CPU clocks.
2006-06-23 Paul Eggert <eggert@cs.ucla.edu>
[BZ #2841]
* sysdeps/generic/stdint.h (UINT8_C, UINT16_C): Don't append 'U',
since C99 requires the result to promote to 'int' when uint_least8_t
and uint_least16_t promote to 'int'.
__strtol_ull_max_tab, __strtol_ull_rem_tab): Declare.
(DEF): Don't put the var into .gnu.linkonce.r.* section.
Only provide var definitions in strtol_l (or for *ull*
in strtoll_l).
* stdio-common/bug16.c (tests): New array.
(do_tests): Allow the first hexadecimal digit
to be 1, 2, 4 or 8. Do 3 additional tests.
* sysdeps/s390/fpu/libm-test-ulps: Update.
* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c (fchownat): Use
fchownat syscall if available.
* sysdeps/unix/sysv/linux/powerpc/fchownat.c (fchownat): Likewise.
* sysdeps/unix/sysv/linux/sh/fchownat.c (fchownat): Likewise.
* sysdeps/unix/sysv/linux/i386/fchownat.c (fchownat): Likewise.
(rec_dirsearch) [case HIGHER_NAME]: Correctly size ndomain array.
Ulrich Drepper <drepper@redhat.com>
* nis/nis_call.c (rec_dirsearch) [case LOWER_NAME]: Don't take
short cut if only one name component is stripped away.
(rec_dirsearch) [HIGHER_NAME]: Correctly size ndomain array.
(first_shoot): Add search_parent_first parameter. Only if it is set
search parent server first.
If directory for table found through cold start cache is not the same
as referenced in the cache, don't use it.
(__nisfind_server): Take additional parameter. Pass it on to
first_shoot.
(__prepare_niscall): Adjust __nisfind_server call.
* nis/rpcsvc/nislib.h: Adjust __nisfind_server prototype.
* nis/nis_table.c: Adjust __nisfind_server call.
* nis/nis_lookup.c: Likewise.
(nis_lookup): Don't loop endlessly if name is reduced to ".".
* stdio-common/printf_fphex.c (__printf_fphex): When rounding up
'f', use '1' as leading digit not '\1'.
* stdio-common/Makefile (tests): Add bug16.
* stdio-common/bug16.c: New file.
[BZ #2914]
* sysdeps/unix/sysv/linux/gethostid.c: Don't define OLD_HOSTIDFILE
and don't try to open it. The patch introducing the macro
contained a bug and used the same file name as the new file
instead of using /var/adm/hostid. Nobody complaint so I'm taking
this out completely.
[BZ #2926]
* assert/assert.h: Move cast to void inside ?: to quiet gcc.
Patch by Jerry James <Jerry.James@usu.edu>.
2006-08-03 Ulrich Drepper <drepper@redhat.com>
* rt/Makefile (tests): Add tst-clock2.
* rt/tst-clock2.c: New file.
[BZ #2978]
* resolv/gai_notify.c (__gai_notify_only): Copy memory for thread
function and its parameters and pass it to new thread.
(__gai_notify): Add support for alternative waiting for completion.
* resolv/gai_suspend.c (gai_suspend): Add support for alternative
waiting for completion.
* resolv/getaddrinfo_a.c: Likewise.
* resolv/gai_misc.h (struct waitlist): Don't add cond if alternative
waiting for completion is used.
* resolv/gai_misc.c: Allow overwriting code to start helper thread.
* resolv/gai_cancel.c: Include <gai_misc.h> not "gai_misc.h".
* resolv/gai_error.c: Likewise.
* resolv/gai_sigqueue.c: Likewise.
* hurd/getdport.c (__detdport): Don't return EBADF; instead set
errno to EBADF and return MACH_PORT_NULL.
* posix/Makefile (CFLAGS-waitid.c): Add -fasynchronous-unwind-tables.
2006-06-23 Joseph Myers <joseph@codesourcery.com>
[BZ #2980]
* posix/Makefile (CFLAGS-waitid.c): Add
-fasynchronous-unwind-tables.
2006-08-02 Ulrich Drepper <drepper@redhat.com>
* elf/dl-addr.c (_dl_addr): If GNU-style hash tables are present,
walk them instead of the symbol table.
the backend NSS module. If backend setgrent call failed, don't have
internal_setgrent fail. Just remember this until it is needed.
* nis/nss_compat/compat-pwd.c: Likewise.
* nis/nss_compat/compat-spwd.c: Likewise.
(__new_exitfn): Bump it in every successful call.
* stdlib/cxa_finalize.c (__cxa_finalize): If destructor registered
more exit handlers, call them right away.
* stdlib/exit.h: Declare __new_exitfn_called.
(_dl_lookup_symbol_x): Rename hash to old_hash and don't compute
value here. Compute new-style hash value. Pass new hash value
and reference to variable with the old value to do_lookup_x.
(_dl_setup_hash): If DT_GNU_HASH is defined, use it and not
old-style hash table.
(_dl_debug_bindings): Pass new hash value and reference to variable
with the old value to do_lookup_x.
* elf/do-lookup.h (do_lookup_x): Accept additional parameter with
new-style hash value and change old-style hash value parameter to
be a reference. Reoganize functions to determine whether
new-style hash table is available. Only fall back on old-style
table. If old-style hash value is needed, compute it here.
* elf/dynamic-link.h (elf_get_dynamic_info): Relocate DT_GNU_HASH
entry.
* elf/elf.h: Define SHT_GNU_HASH, DT_GNU_HASH, DT_TLSDEC_PLT,
DT_TLSDEC_GOT. Adjust DT_ADDRNUM.
* include/link.h (struct link_map): Add l_gnu_bitmask_idxbits,
l_gnu_shift, l_gnu_bitmask, l_gnu_buckets and l_gnu_chain_zero.
* Makeconfig: If linker supports --hash-style option add it to all
linker command lines to build DSOs.
* config.make.in: Define have-hash-style.
* configure.in: Test whether linker supports --hash-style option.
* elf/dl-misc.c (_dl_name_match_p): Make MAP parameter const.
* sysdeps/generic/ldsodefs.h: Adjust prototype.
look further, return original strings.
(_nl_find_msg): Do not return found translation if the conversion
failed. Either signal the string is unusable or that something went
wrong and the original should be used.
2006-06-21 Ulrich Drepper <drepper@redhat.com>
* string/_strerror.c (__strerror_r): Add __builtin_expect.
been converted at all, set *last_wc to WEOF. If mbrtowc failed, set wc
to the byte which couldn't be converted.
(re_string_reconstruct): Don't clear valid_raw_len before calling
re_string_skip_chars. If wc is WEOF after re_string_skip_chars, set
tip_context using re_string_context_at.
* posix/Makefile: Add rules to build and run bug-regex25 test.
* posix/bug-regex25.c: New test.
2006-06-02 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #2703]
* string/envz.c (envz_strip): Correct erroneously reversed src
and dest parameters to memmove() invocation.
* nscd/nscd.c (parse_opt): Read response from INVALIDATE request
to make sure the database has been already invalidated.
* nscd/cache.c (prune_cache): Add fd argument. Write response to fd
after the cache has been invalidated. Use pthread_mutex_lock rather
than pthread_mutex_trylock if fd != -1.
* nscd/connections.c (invalidate_cache): Add fd argument, write
response to fd if not calling prune_cache, pass fd to prune_cache.
(handle_request): Adjust invalidate_cache caller.
(nscd_run): Pass -1 as fd to prune_cache.
* nscd/cache.c (prune_cache): Take prunelock before starting the
work. Just return in case it is already taken.
(inet6_option_alloc): Now a simple wrapper around option_alloc.
Avoid memory leak in case realloc fails. Simplification for
better code generation.
Avoid deprecation warning because of libc_hidden_proto for
inet6_option_alloc.
* inet/inet6_option.c (option_alloc): Renamed from
inet6_option_alloc. Made static.
(inet6_option_alloc): New a simple wrapper around option_alloc.
(inet6_option_append): Call option_alloc.
* include/netinet/in.h: Remove libc_hidden_proto for
inet6_option_alloc.
from __do_niscall.
* nis/nis_table.c (__create_ib_request): Renamed from create_ib_request
and exported.
(__follow_path): New function. Split out from nis_list.
* nis/nis_xdr.h: Add libnsl_hidden_proto for _xdr_ib_request and
_xdr_nis_result.
* nis/nis_xdr.c: Add libnsl_hidden_def for _xdr_ib_request and
_xdr_nis_result.
* nis/libnsl.h: Declare __prepare_niscall, __create_ib_request,
and __follow_path.
* nis/Versions: Export __prepare_niscall, __create_ib_request,
__follow_path, __do_niscall3, _xdr_ib_request, and _xdr_nis_result
from libnsl for version GLIBC_PRIVATE.
* nis/nisplus-parser.h: Remove _nss_nisplus_parse_pwent_chk.
Remove entry parameter from _nss_nisplus_parse_pwent and
_nss_nisplus_parse_grent.
* nis/nss_nisplus/nisplus-parser.c: Likewise.
* nis/nss_nisplus/nisplus-pwd.c: Remove support for SETENT_BATCH_READ
again. Rewrite getpwent handling to not use nis_first_entry and
nis_next_entry. Roll out own niscall handling.
* nis/nss_nisplus/nisplus-grp.c: Likewise.
* sunrpc/xdr_rec.c: Fix typo in comment.
2006-05-18 David Woodhouse <dwmw2@redhat.com>
RFC3484 precedence table for fec0::/10 and fc00::/7 (site-local
and ULA respectively). Set precedence for IPv4 address to 10 as
defined in RFC3484 for preferring IPv6.
* posix/gai.conf: Update to match the new default tables.
* nscd/nscd_initgroups.c: Mark __gr_map_handle as hidden.
* nscd/nscd_getgr_r.c: Likewise.
* include/rpc/pmap_rmt.h: Mark all functions as hidden.
* nscd/nscd_getai.c (__hst_map_handle): Mark as hidden.
* nscd/nscd_gethst_r.c (__hst_map_handle): Likewise.
* stdlib/longlong.h (__clz_tab): Mark as hidden.
* iconv/gconv_int.h: Mark __gconv_lock as hidden.
* include/rpc/auth.h: Mark xdr_des_block_internal and
xdr_opaque_auth_internal as hidden.
* sysdeps/unix/sysv/linux/getdents.c: Mark __have_no_getdents64 as
hidden.
* include/rpc/xdr.h: Make all _internal functions as hidden.
* sunrpc/pmap_rmt.c: Declare xdr_rmtcall_args_internal as hidden.
(add_alias2): ...here. New function.
(__gconv_read_conf): Simplify builtin alias handling.
(builtin_aliases): Convert to string to avoid relocations.
* iconv/gconv_builtin.h: Add comment about correct formatting.
2006-05-14 Andreas Schwab <schwab@suse.de>
* math/complex.h [__LDBL_COMPAT]: Use __REDIRECT_NTH.
2006-05-12 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/sched_getaffinity.c: Include sys/param.h.
(__sched_getaffinity_new): Don't crash if cpusetsize is smaller than
sizeof (cpu_set_t).
[Coverity CID 229, 230]
* argp/argp-help.c (hol_entry_help): Handle STATE==NULL in ARG and
DGETTEXT calls.
(hol_help): Likewise. [Coverity CID 226, 227]
* string/argz-replace.c (__argz_replace): Unconditionally call
free on SRC. [Coverity CID 225]
* nis/nis_creategroup.c (nis_creategroup): No need to duplicate
the return value of __nis_default_owner and __nis_default_group,
it has been especially allocated. [Coverity CID 224]
searchgroup and searchowner. Significantly simplified.
(__nis_default_owner): Remove duplication. Do not locally copy the
string before duplicating it.
(__nis_default_group): Likewise.
* nis/nis_lookup.c (nis_lookup): After calling nis_free_directory,
we must clear the variable before calling __nisfind_server.
* nis/nis_lookup.c (nis_lookup): Always free memory allocated with
nis_getnames. [Coverity CID 223]
* locale/programs/locfile.c (locfile_read): Use alloca instead of
xmalloc to allocate local repertoire name. [Coverity CID 222]
* iconv/iconv_charmap.c (use_to_charmap): No need to dynamically
allocate memory for the input to add_bytes. [Coverity CID 221]
was allocated here. [Coverity CID 219, 220]
was allocated here. [Coverity CID 219]
* posix/getconf.c (print_all): Free confstr data after printing.
[Coverity CID 218]
* sysdeps/posix/getaddrinfo.c (gaih_inet): Free canon string if
list allocation fails. [Coverity CID 215]
* nss/nsswitch.c (__nss_configure_lookup): Fix loop end condition.
[Coverity CID 213]
* argp/argp-help.c (hol_entry_cmp): Don't call canon_doc_option if
string is NULL. [Coverity CID 212]
* argp/Makefile: Add rules to build and run bug-argp1.
* argp/bug-argp1.c: New file.
* io/ftw.c (ftw_dir): Use __rawmemchr instead of strchr to find
end of string.
* stdlib/canonicalize.c (__realpath): Likewise.
* locale/programs/ld-time.c (time_finish): Don't dereference NULL
pointer. [Coverity CID 206]
* elf/dl-dst.h (DL_DST_REQUIRED): Be prepared for missing link map
in statically linked code.
* elf/dl-load.c (_dl_dst_substitute): When replacing ORIGIN in
statically built code, be prepared to have no link map.
[Coverity CID 205]
* argp/argp-help.c (fill_in_uparams): Handle STATE==NULL in
dgettext calls. [Coverity CID 204]
* argp/argp-help.c (struct uparams): Remove valid member. Change
the one user.
(uparam_names): Reduce size. Avoid relative relocations.
Moved to read-only segment.
(fill_in_uparams): Update for new layout.
* sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Parameter can be
assumed to always be != NULL. [Coverity CID 202]
* argp/argp-help.c (hol_entry_help): Remove some dead code
[Coverity CID 200].
* nis/nss_nis/nis-service.c (_nss_nis_getservbyport_r): Optimize
away a few more unconditional yperr2nss calls.
(_nss_nis_getservbyname_r): Likewise.
* resolv/res_mkquery.c: Use NS_PUT16 and NS_PUT32 instead of __putshort
and __putlong respectively. Correct buffer overflow check for
NS_NOTIFY_OP.
* resolv/res_send.c (send_vc): Use ns_put16 instead of putshort.
2006-05-06 Ulrich Drepper <drepper@redhat.com>
[BZ #2499]
* resolv/res_query.c (__libc_res_nquery): If answerp != NULL,
__libc_res_nsend might reallocate the buffer for the answer. In
this case we have to reload the HP pointer.
by a GOT relocation to make Scrt1.o position independent.
* sysdeps/s390/s390-64/elf/start.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/syscall.S: Add support for
six system call parameters.
* sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: Likewise.
malloc&bzero.
* sunrpc/svc_udp.c (BZERO): Remove definition.
(CALLOC): Define.
(svc_enablecache): Use CALLOC instead of ALLOC&BZERO.
* sunrpc/des_impl.c: Remove ALT_ECB support. We never used it.
(des_SPtrans): Use uint32_t type.
(des_skb): Likewise.
* sunrpc/xdr_ref.c (xdr_reference): Use calloc instead of malloc&bzero.
place where the iso639 array might be accessed beyond the limits.
2006-05-05 Jakub Jelinek <jakub@redhat.com>
[BZ #2509]
* stdio-common/tst-printf.sh: Adjust for tst-printf.c change even
on 32-bit arches.
2006-05-05 Ulrich Drepper <drepper@redhat.com>
* locale/programs/ld-address.c (address_finish): Fix one more
place where the iso639 array might be access beyond the limits.
and page size when allocating buffer.
* sysdeps/unix/sysv/linux/bits/socket.h (struct msghdr): Document
msg_controllen type issue.
(struct cmsghdr): Same for cmsg_len.
handling. /etc/gai.conf can contain replacements for the label
and precedence table. Fix byte order of default label and
precedence table.
* posix/gai.conf: New file.
* posix/tst-rfc3484.c: Adjust for changes to getaddrinfo.c.
* posix/tst-rfc3484-2.c: Likewise.
* stdio-common/vfprintf.c (process_arg): Fix reading of signed
short and byte values from parameter list.
* stdio-common/tst-printf.c (main): Add more tests.
* stdio-common/tst-printf.sh: Adjust for tst-printf.c change.
2006-05-02 Ulrich Drepper <drepper@redhat.com>
[BZ #2632]
* nscd/connections.c (nscd_init): Correct initialization of
in-memory database structure.
* iconvdata/utf-7.c: Don't require more than one character after
parameter.
(_nss_nisplus_parse_pwent_chk): New prototype.
* nis/nss_nisplus/nisplus-parser.c (_nss_nisplus_parse_pwent):
Add entry parameter. Use it for column value in all accesses.
Move checks for well-formed reply to...
(_nss_nisplus_parse_pwent_chk): ...here. New function.
* nis/nss_nisplus/nisplus-pwd.c: Support SETENT_BATCH_READ option.
variable.
* nis/nss-nis.h: Define response_t and intern_t. Declare _nis_saveit.
* nis/nss_nis/nis-pwd.c: Remove response_t and intern_t definition.
(saveit): Renamed to _nis_saveit. Take parameter which is pointer
to the intern_t object. Change all users.
* nis/nss_nis/nis-grp.c: Remove response_t, intern_t, and saveit
definition. Use _nis_saveit instead of saveit.
* nis/nss_nis/nis-service.c: Likewise.
* nis/nss_nis/nis-initgroups.c: Likewise.
(internal_setgrent): Adjust for buffer handling.
(internal_getgrent_r): Likewise.
* nis/nss_nis/nis-rpc.c: Likewise.
* nis/nss: Document SETENT_BATCH_READ.
* nis/libnsl.h: Define NSS_FLAG_SETENT_BATCH_READ.
* nis/nss_nis/nis-service.c (saveit): Don't add NUL byte if the
string is already NUL terminated.
(internal_nis_endservent): No need to return anything. Change callers.
(internal_nis_setservent): One more initialization.
* nis/nss_nis/nis-pwd.c: Support SETENT_BATCH_READ option.
* nis/nss_nis/nis-grp.c: Likewise.
* nis/nss-default.c (init): Rewrite parser to get the variables
* nscd/nscd_conf.c (nscd_parse_file): Parse auto-propagate lines.
* nscd/nscd.conf: Add auto-propagate lines.
* nscd/connections.c (dbs): Initialize .propagate fields.
* nscd/grpcache.c (cache_addgr): Do not add ID entry for name lookups
and vice versa if propagation is disabled for the database.
* nscd/pwdcache.c (cache_addpw): Likewise.
* stdlib/strfmon_l.c (__vstrfmon_l): Fix handling of ! modifier.
* localedata/Makefile: Add rules to build and run tst-strfmon1.
* localedata/tst-strfmon1.c: New file.
* nscd/nscd_helper.c (__nscd_get_map_ref): Make mapptr argument a
volatile pointer so that the mapptr->mapped value is re-read after
the lock is retrieved.
* nscd/nscd-client.h: Update __nscd_get_map_ref prototype.
* sysdeps/unix/sysv/linux/ia64/clone2.S: Check for NULL stack
* resolv/res_hconf.c: Remove 'order' parsing. Just ignore the line.
* resolv/res_hconf.h: Remove Name_Service definition.
(struct hconf): Replace service related fields with placeholders.
* version.h (VERSION): Bump to 2.4.90 for the trunk.
* sysdeps/unix/sysv/linux/ia64/clone2.S: Check for NULL stakc
pointers to match other architectures.
* sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (tests): Add
tst-clone.
* sysdeps/unix/sysv/linux/tst-clone.c: New file.
malloc'ed wbuffer which isn't freed in error conditions.
(__readlinkat_alias): New alias.
(readlinkat): New inline function.
* include/unistd.h (readlinkat): Add libc_hidden_proto.
* sysdeps/unix/sysv/linux/readlinkat.c (readlinkat): Add
libc_hidden_def.
* io/readlinkat.c (readlinkat): Likewise.
* debug/readlinkat_chk.c: New file.
* debug/Makefile (routines): Add readlinkat_chk.
* debug/Versions (libc): Export __readlinkat_chk@@GLIBC_2.5.
* debug/tst-chk1.c (do_test): Add readlinkat tests.
* nis/nss_nisplus/nisplus-netgrp.c: Cleanups.
code is possible. Move compatibility code in .text.compat section.
over gaih array. There is only one function to call in the moment.
Add two more parameters to __check_pf.
* sysdeps/unix/sysv/linux/check_pf.c: When using the netlink
interface, determine whether IPv6 addresses are deprecated or
temporary. Create array of those addresses.
* inet/check_pf.c: Always tell caller there are no depracated
and temporary addresses.
* sysdeps/posix/getaddrinfo.c: Pretty printing.
(struct sort_result): Add source_addr_flags field.
(rfc3484_sort): Implement rule 3 and 7.
(in6aicmp): New function.
(getaddrinfo): Call __check_pf also when we need info about IPv6
source addresses. When creating array for sorting addresses,
look up deprecated and temporary addresses returned by __check_pf
and add flag if necessary.
Minor cleanups. NUL terminate name string.
* nis/Versions: No need to export _nss_nisplus_parse_grent,
_nss_nisplus_parse_pwent, and _nss_nisplus_parse_spent.
after the loop [Coverity CID 187].
* nis/nis_getservlist.c (nis_getservlist): Also free lookup result
in error case [Coverity CID 189].
* nis/nis_getservlist.c (nis_getservlist): One more free call
needed [Coverity CID 190].
into a macro. Use preprocessor to decide how to initialize
attempts [Coverity CID 67].
* io/fts.c (fts_build): Comment out dead code [Coverity CID 68].
* sunrpc/rpc_parse.c (def_union): Comment out dead code
[Coverity CID 70].
* locale/programs/linereader.c (lr_token): Remove duplicate
handling of EOF [Coverity CID 71].
* locale/programs/ld-numeric.c (numeric_read) [case tok_grouping]:
We bail out early if ignore_content is set, so there is no need to
check it later again [Coverity CID 72].
* inet/inet6_option.c (inet6_option_find): Check *tptrp for NULL,
not tptrp [Coverity CID 73].
* inet/inet6_option.c (inet6_option_next): Check *tptrp for NULL,
not tptrp [Coverity CID 74].
* misc/tsearch.c (__tsearch): Don't rotate tree if memory
allocation failed [Coverity CID 78].
invalid length [Coverity CID 106].
* nss/nss_files/files-key.c (search): Close stream before
successful return [Coverity CID 107].
* io/fts.c (fts_open): Don't allocate parent if *argv==NULL
[Coverity CID 108].
* sunrpc/rpc_cout.c (inline_struct): Free sizestr after use
[Coverity CID 110, 109].
* sunrpc/rpc_scan.c (docppline): Free file string if it is not
going to be used [Coverity CID 111].
* sysdeps/unix/sysv/linux/getsourcefilter.c (getsourcefilter): Free
memory if socket level value cannot be retrieved [Coverity CID 112].
* nis/nis_clone_dir.c (nis_clone_directory): Free all memory in
error case [Coverity CID 114].
* nis/nis_clone_res.c (nis_clone_result): Free all memory in the
error cases [Coverity CID 115].
* sunrpc/rpc_parse.c (get_definition): Free defp if tok ==
TOK_EOF [Coverity CID 116].
* sysdeps/unix/sysv/linux/setsourcefilter.c (setsourcefilter): Free
memory if socket level value cannot be retrieved [Coverity CID 117].
* elf/cache.c (save_cache): Initialize pad to avoid writing
uninitialized data to disk.
* elf/cache.c (save_cache): Free file_entries_new [Coverity CID 118].
* intl/finddomain.c (_nl_find_domain): Avoid strdup of expand
locale name, use strdupa. Remove free call [Coverity CID 119].
* sunrpc/rpc_main.c (generate_guard): Avoid extra allocation and
the resulting leak [Coverity CID 121].
* sunrpc/rpc_main.c (mkfile_output): Free all allocated memory
[Coverity CID 122].
* sunrpc/rpc_main.c (h_output): Free guard after we are done
[Coverity CID 123].
* sunrpc/svc_udp.c (cache_set): Free victim if newbuf allocation
fails [Coverity CID 126].
* sunrpc/svc_udp.c (svcudp_enablecache): Free memory in error
cases [Coverity CID 127].
* nis/nis_table.c (__create_ib_request): Free ibreq in case strdup
fails [Coverity CID 128].
* nis/nis_getservlist.c (nis_getservlist): Free all memory in case
of an error [Coverity CID 130, 129].
* nis/nis_print_group_entry.c (nis_print_group_entry): If
nis_lookup call failed, return. Free lookup result in error
cases [Coverity CID 131].
* nis/nis_removemember.c (nis_removemember): Free all memory in
error cases [Coverity CID 132].
* nis/nss_nisplus/nisplus-alias.c (_nss_nisplus_getaliasbyname_r):
Always free lookup result [Coverity CID 134].
* nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_gethostton_r):
Always free lookup result [Coverity CID 135].
* nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_getntohost_r):
Always free lookup result [Coverity CID 136].
* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r):
Before retrying, free old result [Coverity CID 137].
* nis/nss_nisplus/nisplus-publickey.c (_nss_nisplus_netname2user):
Free res in case UID is zero [Coverity CID 138].
* nis/ypclnt.c (yp_update): Always free master string
[Coverity CID 140].
* nis/nis_creategroup.c (nis_creategroup): Free all memory in
error cases [Coverity CID 143, 142, 141].
* nis/nss_nis/nis-publickey.c (_nss_nis_getpublickey): Free result
if yp_match call succeeded [Coverity CID 155].
* nis/nss_nis/nis-publickey.c (_nss_nis_getsecretkey): Free string
allocated in yp_match at all times [Coverity CID 157, 156].
* nscd/nscd.c (write_pid): Close stream also if writing failed
[Coverity CID 165].
* nis/nis_table.c (nis_add_entry): Move test for NULL parameter
ahead of first use [Coverity CID 167].
* nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Move test
for NULL parameter ahead of first use [Coverity CID 168].
* intl/finddomain.c (_nl_find_domain): We never return NULL if we
found the locale [Coverity CID 169].
* inet/getnameinfo.c (getnameinfo): __getservbyport_r does not set
herrno [Coverity CID 178].
* nis/nis_checkpoint.c (nis_checkpoint): Don't access and returned
freed object [Coverity CID 182].
2006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
[BZ #2505]
* sysdeps/powerpc/powerpc32/bits/atomic.h [_ARCH_PWR4]:
Define atomic_read_barrier and __ARCH_REL_INSTR using lwsync.
2006-04-03 Roland McGrath <roland@frob.com>
[BZ #2507]
* mach/Machrules (.udeps-targets): New variable.
($(objpfx)%.udeps static pattern rule): Use it to avoid \ inside
quoted string.
2006-04-02 Ulrich Drepper <drepper@redhat.com>
[BZ #2418]
* sysdeps/unix/sysv/linux/bits/socket.h: Use larger of PATH_MAX and
page size when allocating buffer.