Ken Raeburn [Fri, 9 Sep 2005 21:30:38 +0000 (21:30 +0000)]
mine:
* fake-addrinfo-test.c: New file.
* Makefile.in (check): Do pass arguments to addrinfo-test invocation added by
Marc's patch.
(fake-addrinfo-test): New target.
(all): Depend on it.
(SRCS): Fix typo in last change. Add fake-addrinfo-test.c.
(OBJS): Add fake-addrinfo-test.o.
from Marc Aurele La France:
* Makefile.in: Build addrinfo-test.
* addrinfo-test.c (main): 'numeric' -> 'numerichost'; Add -n option to set
AI_NUMERICSERV (if available); print usage message when no arguments are
given.
Ken Raeburn [Fri, 9 Sep 2005 21:22:18 +0000 (21:22 +0000)]
patch from Marc Aurele La France:
* shlib.conf (case *-*-aix5.3*): Generate proper shared libraries acceptable
to dlopen(3) (as in mechglue, for example). Allows for building both shared
and static libraries in one run. Only done for AIX 5.3, but probably should be
done for earlier versions.
Ken Raeburn [Thu, 8 Sep 2005 01:44:53 +0000 (01:44 +0000)]
* default.exp: Initialize can_get_root to yes.
(setup_root_shell): If can_get_root is "no", log a message and return, without
making another attempt. On failing attempts, set can_get_root to "no".
Sam Hartman [Mon, 29 Aug 2005 19:22:52 +0000 (19:22 +0000)]
Remove changebar.sty
The changebar.sty file found in the doc directory has questionable
licensing. In particular, it is not the same changebar.sty found in
CTAN and has no well defined license specified in the file. Since we
do not actually need changebar.sty, remove it.
Ken Raeburn [Sat, 20 Aug 2005 09:14:59 +0000 (09:14 +0000)]
Rename all RPC functions from _1 to _2 to match current program version number;
likewise _1_svc to _2_svc in the kadmin server. Delete the RPC functions from
the libkadm5clnt export list.
Ken Raeburn [Sat, 20 Aug 2005 08:26:36 +0000 (08:26 +0000)]
* aclocal.m4 (PL_KRB5_MAJOR_RELEASE, PL_KRB5_MINOR_RELEASE, PL_KRB5_PATCHLEVEL,
PL_KRB5_RELTAIL): New macros, holding values extracted from patchlevel.h at
autoconf time.
(K5_VERSION): Define in terms of the PL_* macros.
(K5_TOPDIR): If m4exit doesn't work, try builtin(m4exit,1).
* configure.in: Set KRB5_VERSION from K5_VERSION, don't parse patchlevel.h.
Ken Raeburn [Sat, 20 Aug 2005 04:22:42 +0000 (04:22 +0000)]
* kdb_db2.c (MAX_LOCK_TRIES): New macro.
(krb5_db2_db_lock): Always make non-blocking attempts to acquire the lock.
Retry up to MAX_LOCK_TRIES times on failure.
Ken Raeburn [Wed, 17 Aug 2005 01:06:31 +0000 (01:06 +0000)]
Fix to last change: Add the new db info lines to krb5.conf files always, not
just kdc file, so kadmin.local (etc) invocations using other config files still
see them.
Ken Raeburn [Wed, 17 Aug 2005 00:39:42 +0000 (00:39 +0000)]
* Makefile.in (site.exp): Write KRB5_DB_MODULE_DIR setting into site.exp.
Depend on Makefile.
* config/default.exp (setup_kerberos_files): Don't write database_name entry
into KDC config file.
(setup_krb5_conf): Write new config lines for the realm into the krb5.conf file
for the KDC.
Tom Yu [Tue, 12 Jul 2005 20:07:06 +0000 (20:07 +0000)]
fix MITKRB5-SA-2005-003 krb5_recvauth double-free
* recvauth.c (recvauth_common): Avoid double-free on invalid
version string. Thanks to Magnus Hagander. Fix for
MITKRB5-SA-2005-003 [CAN-2005-1689, VU#623332].
ticket: new
target_version: 1.4.2
tags: pullup
component: krb5-libs
Ken Raeburn [Wed, 6 Jul 2005 23:24:29 +0000 (23:24 +0000)]
* kdb5.c (kdb_get_library_name, kdb_load_library): Change default name to "db2".
(kdb_get_library_name): On error reading from the config file, don't just use
the default.
(kdb_load_library): Don't add "lib" prefix on module name.
Ken Raeburn [Wed, 6 Jul 2005 23:22:18 +0000 (23:22 +0000)]
Rename module to "db2"
* Makefile.in (LIBBASE): Change to db2.
(LIBMAJOR): Change to 0.
(all): Deleted explicit dependency.
(all-unix): Added here, without "lib" prefix.
(clean-unix): Drop clean-liblinks.
* db2_exp.c: (krb5_db_vftabl_db2): Renamed from ..._kdb_db2.
* db2.exports: Rename from libkdb_db2.exports, update for symbol name change.
Ken Raeburn [Wed, 6 Jul 2005 23:17:21 +0000 (23:17 +0000)]
Drop "lib" prefix from things intended to be dynamically loaded
* lib.in (LIBPREFIX): New variable.
* libnover.in (LIBPREFIX): New variable.
(LIBLIST, $(LIBBASE)$(SHLIBVEXT), $(TOPLIBD)/$(LIBBASE)$(SHLIBEXT), clean-libs,
install-shared): Drop "lib" from generated shared object name.
* pre.in (SHLIB_EXPORT_FILE): Use $(LIBPREFIX).
* shlib.conf: Use $(LIBPREFIX) in LDCOMBINE.
Ken Raeburn [Sat, 2 Jul 2005 03:00:13 +0000 (03:00 +0000)]
* err_handle.c (krb5_err_key): Variable deleted.
(init_err_handling, krb5_set_err, krb5_get_err_string, krb5_clr_error): Use k5_
macros for thread-specific data instead of pthread versions.
Ken Raeburn [Wed, 29 Jun 2005 19:23:01 +0000 (19:23 +0000)]
* Makefile.in (LIB): Variable deleted, uses replaced with LIBBASE.
(SHLIB_EXPDEPS, SHLIB_EXPLIBS): Add gssrpc library and depedencies.
(lib$(LIBBASE)$(SO_EXT)): Don't explicitly link in the gssrpc library.
Ken Raeburn [Tue, 21 Jun 2005 00:45:08 +0000 (00:45 +0000)]
Update dependencies
N.B.: The version of gcc used this time ("gcc version 3.4.3 20041212
(Red Hat 3.4.3-9.EL4)") seems to emit some duplicate dependencies --
some header files get listed twice. This is annoying but shouldn't
cause any harm....
Ken Raeburn [Wed, 15 Jun 2005 23:17:15 +0000 (23:17 +0000)]
ksu keeps old ccache locked
ksu can keep the user's ccache (the old one, not the newly created
one) locked while the new shell is running. It's a read lock, which
prevents other processes from modifying the file (e.g., adding newly
acquired tickets); they just hang until ksu exits.
The problem is really a bug down in the ccache code, where the wrong
data pointer is pulled out of a linked list, and used. But ksu is one
of the few programs that manipulates multiple ccaches; most other
programs wouldn't show the problem, and it only shows up with ksu if
some other program is also being run that has to fetch new tickets.
Any other programs maintaining multiple file ccaches may be affected
as well.
* cc_file.c (dereference): Fix test is list-walking loop.
Ken Raeburn [Wed, 15 Jun 2005 01:13:34 +0000 (01:13 +0000)]
* k5-platform.h: Include endian.h if it's available, or machine/endian.h if
it's available. Include byteswap.h if available.
(K5_LE, K5_BE): Define based on endianness macros from header files, if
available. Only do the architecture tests if this fails.
(SWAP16, SWAP32, SWAP64): Define if byteswap.h and bswap_16 are available.
({load,store}_{16,32,64}_le): Disable building of little-endian versions, which
aren't currently used.
Ken Raeburn [Fri, 10 Jun 2005 01:47:29 +0000 (01:47 +0000)]
* sendto_kdc.c (service_fds): Don't create a select_state on the stack; take an
additional argument pointing to it.
(krb5int_sendto): Don't create a select_state on the stack; instead, allocate
two on the heap, passing the second as the new argument to service_fds.
Ken Raeburn [Thu, 9 Jun 2005 23:30:33 +0000 (23:30 +0000)]
Use GCC's packed-structure support to try to optimize unaligned loads and
stores of values. (E.g., on x86, gcc will emit a word load or store regardless
of alignment; on sparc or alpha, it will do aligned word accesses. The old C
code does byte operations and arithmetic, always.) Tested in crypto code on
x86, sparc, and amd64.
* k5-platform.h (load_*): Change argument type to point to const.
(K5_BE, K5_LE): New macros, defined based on architecture macros for certain
big-endian and little-endian platforms, respectively.
(PUT, GET) [__GNUC__]: New macros. Use GCC's packed-structure support to do
unaligned loads and stores.
(PUTSWAPPED, GETSWAPPED) [__GNUC__]: Similar, but invoke a SWAP<size> macro
(not defined yet) to swap the bytes of the value.
(store_*, load_*): Use these macros when using GCC, depending on endianness and
availability of the SWAP<size> macros.