]> git.ipfire.org Git - thirdparty/krb5.git/log
thirdparty/krb5.git
13 years agoClarify diff between krb5.conf and kdc.conf files
Zhanna Tsitkov [Thu, 5 Jul 2012 15:29:16 +0000 (11:29 -0400)] 
Clarify diff between krb5.conf and kdc.conf files

13 years agoSimplify pkinit_server_verify_padata slightly
Greg Hudson [Thu, 5 Jul 2012 09:05:13 +0000 (05:05 -0400)] 
Simplify pkinit_server_verify_padata slightly

Eliminate the effectively unused variable tmp_as_req, and eliminate
two unnecessary conditionals for freeing pointers.

13 years agoSimplify and fix pkinit_as_req_create cleanup
Greg Hudson [Thu, 5 Jul 2012 09:02:38 +0000 (05:02 -0400)] 
Simplify and fix pkinit_as_req_create cleanup

Avoid dereferencing a null auth_pack pointer if we run out of memory
initializing info or auth_pack.  Eliminate an unnecessary switch by
just cleaning up all of the potentially allocated variables.

13 years agoFix minor memory leaks in PKINIT code
Greg Hudson [Thu, 5 Jul 2012 08:52:39 +0000 (04:52 -0400)] 
Fix minor memory leaks in PKINIT code

13 years agoFix PKINIT verify_kdc_eku trace logging
Greg Hudson [Thu, 5 Jul 2012 08:50:59 +0000 (04:50 -0400)] 
Fix PKINIT verify_kdc_eku trace logging

Test the value of the eku_accepted output parameter, not the pointer.

13 years agoCorrect an error in GSSAPI initiator cred docs
Greg Hudson [Tue, 3 Jul 2012 22:50:38 +0000 (18:50 -0400)] 
Correct an error in GSSAPI initiator cred docs

13 years agoFix typo in previous change to get_fq_hostname
Tom Yu [Tue, 3 Jul 2012 20:44:05 +0000 (16:44 -0400)] 
Fix typo in previous change to get_fq_hostname

ticket: 7086

13 years agoFix a minor memory leak in get_fq_hostname
Arlene Berry [Tue, 3 Jul 2012 19:20:54 +0000 (15:20 -0400)] 
Fix a minor memory leak in get_fq_hostname

ticket: 7086

13 years agoTake care with types in process_routing_update()
Ben Kaduk [Fri, 29 Jun 2012 15:35:41 +0000 (11:35 -0400)] 
Take care with types in process_routing_update()

read(2) returns an ssize_t, not an int.  We want to compare this
value against several unsigned size_ts, so make a local copy.
Also cast to int for printing; size_t can be wider than int, but
these values should be small.

13 years agoClean up const usage for supported_kdf_alg_ids
Ben Kaduk [Wed, 27 Jun 2012 21:02:01 +0000 (17:02 -0400)] 
Clean up const usage for supported_kdf_alg_ids

The previous declaration had redundant consts and missed making
the actual pointers stored in the array const.

13 years agoPass empty string instead of NULL to printf-like
Ben Kaduk [Wed, 27 Jun 2012 23:10:16 +0000 (19:10 -0400)] 
Pass empty string instead of NULL to printf-like

13 years agoRemove unused variable
Ben Kaduk [Wed, 27 Jun 2012 23:04:00 +0000 (19:04 -0400)] 
Remove unused variable

13 years agoMinor cleanups relating to size_t being unsigned
Ben Kaduk [Wed, 27 Jun 2012 20:35:20 +0000 (16:35 -0400)] 
Minor cleanups relating to size_t being unsigned

In order to use -1 as a sentinel value, we should explicitly cast
to make it clear what we are doing.  It might be better to use
a less convoluted sentinel value such as SIZE_T_MAX, though.

Additionally, since size_t is unsigned and at least as wide as
an int, a loop with int index variable that compares against a
size_t for its termination check could become an infinite loop.
Make the loop index size_t for consistency.

13 years agoUse consistent types for overflow comparison
Ben Kaduk [Wed, 27 Jun 2012 20:00:16 +0000 (16:00 -0400)] 
Use consistent types for overflow comparison

Unsigned long might not be 32-bits, in which case the overflow check
fails for a 32-bit kdb_sno_t.  Cast from -1 explicitly as a more
robust check.

13 years agoAvoid unsigned/signed comparison in loop condition
Ben Kaduk [Wed, 27 Jun 2012 19:38:47 +0000 (15:38 -0400)] 
Avoid unsigned/signed comparison in loop condition

The gid_len length is declared as an unsigned int, and loop
index 'i' is a signed int.  This could manifest as an infinite
loop if gid_len is very large.  In practice, gid_len should be small,
but make 'i' the same type for consistency.

13 years agoImprove printf handling of size_t args
Ben Kaduk [Wed, 27 Jun 2012 19:14:00 +0000 (15:14 -0400)] 
Improve printf handling of size_t args

The %*s format takes two arguments, a precision length/width and
an actual string; the length is specified as a signed integer.
The size_t length field of the gss_buffer_desc type is an unsigned
type, which must be cast or otherwise converted to a signed type
to match the format string expectations.
I do not think that the length will approach SIZE_T_MAX in practice,
due to buffer constraints, so do not include handling for the
edge case.

There is a '%zu' format string for printing size_ts, but it is not
available everywhere (e.g., AIX).  Instead, use the
unsigned long long abomination.

13 years agoResolve no-previous-prototype warning in os/cm.c
Ben Kaduk [Wed, 27 Jun 2012 18:28:16 +0000 (14:28 -0400)] 
Resolve no-previous-prototype warning in os/cm.c

The warning is
../../../../krb5/src/lib/krb5/os/cm.c:43: warning: no previous prototype for 'k5
_getcurtime'
which occurs because
int k5_getcurtime(struct timeval *tvp)
is defined (and used) in cm.c but there is no forward declaration.
Include the os-proto.h (internal) header which declares this function
to eliminate the warning.  k5_getcurtime() is the first declaration in
cm.c, so there is not an ABI concern.

The only other consumer of k5_getcurtime(), sendto_kdc.c, already includes
os-proto.h, so this issue is purely cosmetic.

13 years agoIncrease MAX_DGRAM_SIZE
Greg Hudson [Mon, 2 Jul 2012 22:25:40 +0000 (18:25 -0400)] 
Increase MAX_DGRAM_SIZE

Accept UDP datagrams up to 64K in size.  We should still detect when
an oversized datagram comes in by comparing against the maximum size,
but this is trivial and covers 90% of the practical issues.

ticket: 6566
status: open

13 years agoAdd krb5_kt_client_default to krb5_32.def
Greg Hudson [Mon, 2 Jul 2012 20:40:38 +0000 (16:40 -0400)] 
Add krb5_kt_client_default to krb5_32.def

13 years agoFix kdc_free_lookaside() krb5_context usage
Greg Hudson [Mon, 2 Jul 2012 18:36:05 +0000 (14:36 -0400)] 
Fix kdc_free_lookaside() krb5_context usage

Use the provided krb5_context, not kdc_context, which isn't valid when
kdc_free_lookaside() is called.

13 years agoComment fall-throughs in iakerb switch statement
Greg Hudson [Mon, 2 Jul 2012 17:22:37 +0000 (13:22 -0400)] 
Comment fall-throughs in iakerb switch statement

13 years agoFix minor memory leaks in acquire_cred.c
Greg Hudson [Mon, 2 Jul 2012 17:21:04 +0000 (13:21 -0400)] 
Fix minor memory leaks in acquire_cred.c

13 years agoCheck sort_enctypes return value in gic_keytab
Greg Hudson [Mon, 2 Jul 2012 16:49:22 +0000 (12:49 -0400)] 
Check sort_enctypes return value in gic_keytab

13 years agoMinor rst markup fix
Zhanna Tsitkov [Mon, 2 Jul 2012 18:08:32 +0000 (14:08 -0400)] 
Minor rst markup fix

13 years agoInclude all default etypes in gic_keytab requests
Greg Hudson [Mon, 2 Jul 2012 16:46:59 +0000 (12:46 -0400)] 
Include all default etypes in gic_keytab requests

Revert 18b02f3e839c007fff54fc9b693f479b7563ec73 in the KDC.  Instead,
when making an initial request with a keytab, transmit the whole
default_tkt_enctypes list, but sorted with the enctypes we have in the
keytab first.  That way the KDC should prefer enctypes which we have
keys for (for both reply key and session key), but the other enctypes
are still available for use as ticket session keys.

ticket: 7190

13 years agoAdd client keytab initiation support
Greg Hudson [Fri, 22 Jun 2012 16:48:26 +0000 (12:48 -0400)] 
Add client keytab initiation support

Support acquiring GSSAPI krb5 credentials by fetching initial
credentials using the client keytab.  Credentials obtained this way
will be stored in the default ccache or collection, and will be
refreshed when they are halfway to expiring.

ticket: 7189 (new)

13 years agoDocument GSSAPI name type behavior
Greg Hudson [Sat, 30 Jun 2012 01:45:26 +0000 (21:45 -0400)] 
Document GSSAPI name type behavior

Separate out the general interpretation of GSSAPI name types by the
krb5 mechanism from the specific behavior of host-based and principal
name types when used as acceptor names.

13 years agoAdd krb5_kt_client_default API
Greg Hudson [Fri, 15 Jun 2012 15:14:39 +0000 (11:14 -0400)] 
Add krb5_kt_client_default API

The default client keytab is intended to be used to automatically
acquire initial credentials for client applications.  The current
hardcoded default is a placeholder, and will likely change before
1.11.

Add test framework settings to ensure that a system default client
keytab doesn't interfere with tests, and to allow tests to be written
to deliberately use the default client keytab.

Add documentation about keytabs to the concepts section of the RST
docs, and describe the default client keytab there.

ticket: 7188 (new)

13 years agoGet default cred only once in gss-krb5 initiator
Greg Hudson [Mon, 2 Jul 2012 04:57:34 +0000 (00:57 -0400)] 
Get default cred only once in gss-krb5 initiator

In the regular krb5 code path, only get a default krb5 cred for the
initial token, since we don't need the cred for mutual_auth anyway.

In the IAKERB mechanism, cache the default cred in iakerb_ctx_id_rec
so we don't have to construct it again for each token.  Also, get an
IAKERB default cred, not a regular krb5 cred (a bug which is harmless
now, but becomes more of a problem with keytab initiation changes).

13 years agoTry harder to make keytab-based AS requests work
Greg Hudson [Sun, 1 Jul 2012 18:19:56 +0000 (14:19 -0400)] 
Try harder to make keytab-based AS requests work

When making a keytab-based AS request, a client has to choose between
sending its reply key enctype preference list (the enctypes it has in
the keytab) and its session key enctype preference list (all of the
enctypes it supports).  Heimdal and MIT krb5 1.11 clients send the
reply key preference list.  If this list doesn't overlap with the
server principal keys (say, because the krbtgt principal has only a
DES key), then the AS request will fail.

Try to make this work by making the KDC optimistically pick the first
permitted enctype in the request as the session key, even though it
can't be certain that other KDCs in the realm support that enctype.

Make sure to exercise this case in t_keytab.py by doing a multipass
keytab kinit test.

ticket: 7190 (new)

13 years agoRemove an outdated reference to DES in klist help
Greg Hudson [Fri, 29 Jun 2012 21:21:24 +0000 (17:21 -0400)] 
Remove an outdated reference to DES in klist help

13 years agoCorrect and clarify keytab API documentation
Greg Hudson [Fri, 29 Jun 2012 21:20:21 +0000 (17:20 -0400)] 
Correct and clarify keytab API documentation

13 years agoRename gss-krb5 cred tgt_expire field
Greg Hudson [Wed, 27 Jun 2012 20:04:32 +0000 (16:04 -0400)] 
Rename gss-krb5 cred tgt_expire field

The tgt_expire field is used to store non-TGT expiry times in a couple
of cases: when the ccache has no TGT, and after we've obtained a cred
for the target service.  Rename it to just "expire" to be less
misleading.

13 years agoScan ccache more efficiently in gss_acquire_cred
Greg Hudson [Wed, 27 Jun 2012 19:52:21 +0000 (15:52 -0400)] 
Scan ccache more efficiently in gss_acquire_cred

Avoid rereading the ccache in order to find the impersonator config
entry.  Instead, check each entry as we scan through the first time.

13 years agoSimplify password storage in krb5_gss_cred_id_rec
Greg Hudson [Wed, 27 Jun 2012 16:36:15 +0000 (12:36 -0400)] 
Simplify password storage in krb5_gss_cred_id_rec

The password is always zero-terminated, so we can store it as a char *
instead of a krb5_data.

13 years agoClarify module names in host_config
Greg Hudson [Tue, 26 Jun 2012 16:28:26 +0000 (12:28 -0400)] 
Clarify module names in host_config

Explicitly state that a module name will usually be the same as the
shared object name, but doesn't have to be.

13 years agoFix another plugin example in host_config
Greg Hudson [Mon, 25 Jun 2012 19:50:25 +0000 (15:50 -0400)] 
Fix another plugin example in host_config

13 years agoRestore some spaces in trval
Tom Yu [Mon, 25 Jun 2012 19:17:02 +0000 (15:17 -0400)] 
Restore some spaces in trval

This is a cosmetic change to reintroduce some space characters that
cff6ea939f061d17a5742a04b8eeb2905c1813dc removed, e.g. between the tag
and the length or short value.

13 years agoCorrectly document module setting in host_config
Greg Hudson [Mon, 25 Jun 2012 19:26:24 +0000 (15:26 -0400)] 
Correctly document module setting in host_config

The module variable must take the form modname:path, which was not
reflected in the example or described in the text.

13 years agoFix crash on invalid DIR ccache primary file
Greg Hudson [Mon, 25 Jun 2012 15:19:56 +0000 (11:19 -0400)] 
Fix crash on invalid DIR ccache primary file

If read_primary_file() fails with an error other than ENOENT, abort
cache resolution rather than dereferencing a null pointer.  Reported
by Oliver Loch.

ticket: 7185
target_version: 1.10.3
tags: pullup

13 years agoEliminate trailing whitespace in trval output
Greg Hudson [Fri, 22 Jun 2012 18:47:16 +0000 (14:47 -0400)] 
Eliminate trailing whitespace in trval output

Modify the trval output slightly so that the reference trval output
files don't containing trailing whitespace, to make them friendlier to
our git hooks.  (The pkinit and ldap trval reference files now contain
a leading blank line, which isn't very elegant, but avoiding that
requires too much Makefile.in complexity.)  Also correct a typo.

13 years agoSimplify acquire_cred.c
Greg Hudson [Fri, 15 Jun 2012 22:06:43 +0000 (18:06 -0400)] 
Simplify acquire_cred.c

struct acquire_cred_args was used purely to pass arguments to
acquire_cred (a static function), and had no advantages for that
purpose over positional arguments.

13 years agoFix config check in krb5_cccol_have_content
Greg Hudson [Tue, 19 Jun 2012 01:40:44 +0000 (21:40 -0400)] 
Fix config check in krb5_cccol_have_content

krb5_is_config_principal should be invoked on creds.server, not
creds.client.

ticket: 7173

13 years agoLimit size of lookaside cache
Greg Hudson [Sat, 16 Jun 2012 15:38:57 +0000 (11:38 -0400)] 
Limit size of lookaside cache

Add a preprocessor constant LOOKASIDE_MAX_SIZE (defaulting to 10MB)
which limits the total size of the lookaside cache entries.  Purge
stale entries in kdc_insert_lookaside instead of kdc_check_lookaside,
and when doing so, continue purging non-stale entries until the total
cache size (including the new entry) is within the size constraint.

13 years agoFlatten KDC lookaside cache entries
Greg Hudson [Sat, 16 Jun 2012 15:23:14 +0000 (11:23 -0400)] 
Flatten KDC lookaside cache entries

Use krb5_data structures instead of pointers in the entry structure,
reducing the number of memory allocations.

13 years agoHandle PKINIT DH replies with no certs
Greg Hudson [Thu, 21 Jun 2012 21:20:29 +0000 (17:20 -0400)] 
Handle PKINIT DH replies with no certs

If a PKINIT Diffie-Hellman reply contains no certificates in the
SignedData object, that may be because the signer certificate was a
trust anchor as transmitted to the KDC.  Heimdal's KDC, for instance,
filters client trust anchors out of the returned set of certificates.
Match against idctx->trustedCAs and idctx->intermediateCAs to handle
this case.  This fix only works with OpenSSL 1.0 or later; when built
against OpenSSL 0.9.x, the client will still require a cert in the
reply.

Code changes suggested by nalin@redhat.com.

ticket: 7183

13 years agoSimplify bld_princ.c
Greg Hudson [Thu, 21 Jun 2012 21:12:50 +0000 (17:12 -0400)] 
Simplify bld_princ.c

13 years agoRemove orphaned KfM code
Greg Hudson [Thu, 21 Jun 2012 20:53:43 +0000 (16:53 -0400)] 
Remove orphaned KfM code

13 years agoDocument how to free krb5_cc_get_full_name result
Greg Hudson [Wed, 20 Jun 2012 15:14:08 +0000 (11:14 -0400)] 
Document how to free krb5_cc_get_full_name result

Also, in klist, use the appropriate libkrb5 free functions for
krb5_cc_get_full_name and krb5_unparse_name_results.  Reported by
Kevin Wasserman.

ticket: 7179

13 years agoMinor reformating for better Sphinx HTML output
Zhanna Tsitkov [Tue, 19 Jun 2012 14:59:59 +0000 (10:59 -0400)] 
Minor reformating for better Sphinx HTML output

No content was changed.

13 years agoRemove CRs from options2configure.rst
Greg Hudson [Mon, 18 Jun 2012 19:55:24 +0000 (15:55 -0400)] 
Remove CRs from options2configure.rst

options2configure.rst had CRLF newlines, and should have LF newlines
like everything else.

13 years agoDocument version for new API functions
Zhanna Tsitkov [Fri, 15 Jun 2012 15:16:36 +0000 (11:16 -0400)] 
Document version for new API functions

13 years agoFail from gss_acquire_cred if we have no creds
Greg Hudson [Thu, 14 Jun 2012 18:15:05 +0000 (14:15 -0400)] 
Fail from gss_acquire_cred if we have no creds

If a caller tries to acquire krb5 initiator creds with no desired name
and we have no credentials in the cache collection, fail from
gss_acquire_cred intead of deferring until gss_init_sec_context.

ticket: 7160

13 years agoAdd krb5_cccol_have_content API
Greg Hudson [Thu, 14 Jun 2012 17:53:09 +0000 (13:53 -0400)] 
Add krb5_cccol_have_content API

Add a new API to determine whether any krb5 credentials are available
in the ccache collection.  Add tests to t_cccol.py.

ticket: 7173 (new)

13 years agoFix spelling of "start_time" in previous
Tom Yu [Thu, 14 Jun 2012 22:22:28 +0000 (18:22 -0400)] 
Fix spelling of "start_time" in previous

13 years agoDocument allowed time formats for kinit and ksu
Zhanna Tsitkov [Thu, 14 Jun 2012 18:46:10 +0000 (14:46 -0400)] 
Document allowed time formats for kinit and ksu

13 years agoRemove krb5int_cc_os_default_name
Greg Hudson [Mon, 11 Jun 2012 13:30:20 +0000 (09:30 -0400)] 
Remove krb5int_cc_os_default_name

krb5int_cc_os_default_name has been unused since #6955 removed the
call to it in cccursor.c.  Get rid of it.

13 years agoClean up default_an_to_ln and fix a minor leak
Greg Hudson [Fri, 8 Jun 2012 22:40:22 +0000 (18:40 -0400)] 
Clean up default_an_to_ln and fix a minor leak

The default realm could be leaked if the principal had the wrong
number of components.  Reported by Russ Allbery.

ticket: 7161

13 years agoRemove big-endian gss-krb5 support
Greg Hudson [Fri, 8 Jun 2012 21:02:28 +0000 (17:02 -0400)] 
Remove big-endian gss-krb5 support

The big_endian flag in krb5_gss_ctx_id_rec is there for
interoperability with a really ancient implementation which we believe
is no longer in use.  Get rid of it and the code to handle it.

ticket: 7166 (new)

13 years agoUpdate Build Kerberos V5 doc section
Zhanna Tsitkov [Fri, 8 Jun 2012 16:33:49 +0000 (12:33 -0400)] 
Update Build Kerberos V5 doc section

ticket: 7126

13 years agoFix memory leak in dbentry_supports_enctype in KDC
Greg Hudson [Thu, 7 Jun 2012 17:15:27 +0000 (13:15 -0400)] 
Fix memory leak in dbentry_supports_enctype in KDC

The etypes list was never freed.  Also use k5_etypes_contains.

13 years agoRename and add to etype utility functions
Greg Hudson [Thu, 7 Jun 2012 16:58:26 +0000 (12:58 -0400)] 
Rename and add to etype utility functions

Rename krb5int_count_etypes and krb5int_copy_etypes to have k5_
prefixes, and make them available outside of libkrb5 (but not part of
the public API).  Add k5_etypes_contains to search an etype list, and
use it in krb5_is_permitted_enctype.

13 years agoRemove krb5_is_permitted_enctype_ext
Greg Hudson [Thu, 7 Jun 2012 16:41:48 +0000 (12:41 -0400)] 
Remove krb5_is_permitted_enctype_ext

It's an internal function (not in krb5.h or the libkrb5 export list)
and nothing uses it.

13 years agoDon't free caller's principal in vfy_increds
Greg Hudson [Wed, 6 Jun 2012 23:13:13 +0000 (19:13 -0400)] 
Don't free caller's principal in vfy_increds

#7125 took out the copy of the krb5_verify_init_creds server argument
but left in the corresponding free, so it was freeing a caller-owned
principal.  Reported by Russ Allbery.

ticket: 7162

13 years agoTry to make t_trace.c output consistent
Greg Hudson [Wed, 6 Jun 2012 20:37:02 +0000 (16:37 -0400)] 
Try to make t_trace.c output consistent

Attempt to choose tracing inputs in t_trace.c which will produce
consistent output across platforms and logins.  Re-enable the
comparison against the reference file.

13 years agoAdd control over session key enctype negotiation
Nicolas Williams [Mon, 4 Jun 2012 22:17:31 +0000 (17:17 -0500)] 
Add control over session key enctype negotiation

Adds a principal string attribute named "session_enctypes" which can
specify what enctypes the principal supports for session keys.  (For
what it's worth, this actually allows one to list des-cbc-md5 as a
supported session key enctype, though obviously this hardly matters
now.)

Add a [realms] section parameter for specifying whether to assume that
principals (which lack the session_enctypes attribute) support
des-cbc-crc for session keys.  This allows those who still need to use
allow_weak_crypto=true, for whatever reason, to start reducing the
number of tickets issued with des-cbc-crc session keys to clients
which still give des-cbc-crc preference in their default_tgs_enctypes
list.

[ghudson@mit.edu: Miscellaneous edits, cleanups, and fixes; refactored
test script; documented session_enctypes attribute]

13 years agoAllow daemon debugging in k5test.py
Greg Hudson [Wed, 6 Jun 2012 15:23:19 +0000 (11:23 -0400)] 
Allow daemon debugging in k5test.py

Allow --debug to be used for commands which start daemons, to make it
easier to debug startup issues.  After debugging a daemon, the script
will exit, since the daemon won't be running after the debugging
session is over.

13 years agoFix k5test.py hostname canonicalization
Greg Hudson [Tue, 5 Jun 2012 04:48:37 +0000 (00:48 -0400)] 
Fix k5test.py hostname canonicalization

r25844 (#7124) stopped using AI_ADDRCONFIG when canonicalizing
hostnames in sn2princ.  So we need to also stop using it in k5test.c's
_get_hostname() or we could come up with a different result on a
system where forward and reverse resolution via IPv4 and IPv6 produce
different results.  That in turn causes a t_gssapi.py test (the one
using the un-canonicalized hostname) to fail, because libkrb5 looks
for a different host principal than k5test.py put in the keytab.

13 years agoFix uninitialized memory errors in t_trace.c
Greg Hudson [Tue, 5 Jun 2012 04:43:49 +0000 (00:43 -0400)] 
Fix uninitialized memory errors in t_trace.c

13 years agoDisable trace test comparison for now
Greg Hudson [Tue, 5 Jun 2012 03:56:22 +0000 (23:56 -0400)] 
Disable trace test comparison for now

The t_trace output isn't consistent from run to run.  To fix "make
check", disable the comparison against the reference file until we can
make the output consistent.

13 years agoFix trace log unit test
Greg Hudson [Mon, 4 Jun 2012 15:23:00 +0000 (11:23 -0400)] 
Fix trace log unit test

Only use common denominator Bourne shell syntax for exporting
environment variables.  Don't rely on /dev/stdout working.  Compare
the output with a reference file to detect changes, instead of just
sending it to stdout.

13 years agoFix -DDEBUG compilation errors
Henry B. Hotz [Mon, 4 Jun 2012 14:56:38 +0000 (10:56 -0400)] 
Fix -DDEBUG compilation errors

ticket: 7150

13 years agoFail from gss_acquire_cred if we have no keytab
Greg Hudson [Mon, 4 Jun 2012 00:46:30 +0000 (20:46 -0400)] 
Fail from gss_acquire_cred if we have no keytab

If a caller tries to acquire krb5 acceptor creds with no desired name
and we have no keytab keys, fail from gss_acquire_cred instead of
deferring until gss_accept_sec_context.

ticket: 7159 (new)

13 years agoUse first mech's status in gss_acquire_cred
Greg Hudson [Mon, 4 Jun 2012 00:39:08 +0000 (20:39 -0400)] 
Use first mech's status in gss_acquire_cred

If we can't acquire creds for any mech in gss_acquire_cred, return the
status of the first mech instead of the last mech, as it's more useful
in the typical case (where the first mech is krb5 and the last mech is
SPNEGO).  This error reporting is not ideal when the user was
expecting to use some mech other than krb5, but it's about as good as
things were prior to #6894.

ticket: 6973

13 years agoImprove error message from krb5_kt_have_content
Greg Hudson [Mon, 4 Jun 2012 00:35:53 +0000 (20:35 -0400)] 
Improve error message from krb5_kt_have_content

13 years agoRemove outdated comment in k5test.py
Greg Hudson [Mon, 4 Jun 2012 00:06:43 +0000 (20:06 -0400)] 
Remove outdated comment in k5test.py

13 years agoAdd krb5_kt_have_content API
Greg Hudson [Sat, 2 Jun 2012 18:06:58 +0000 (14:06 -0400)] 
Add krb5_kt_have_content API

Add the krb5_kt_have_content API from Heimdal, which can be used to
test whether a keytab exists and contains entries.  Add tests to
t_keytab.c.

There is a deviation from Heimdal in the function signature.
Heimdal's signature returns a krb5_boolean at the moment, because the
Heimdal implementation actually returns a krb5_error_code.  These are
generally the same type anyway (int).

ticket: 7158 (new)

13 years agoTighten up error checking in t_keytab.c
Greg Hudson [Sat, 2 Jun 2012 17:54:12 +0000 (13:54 -0400)] 
Tighten up error checking in t_keytab.c

When checking for specific error codes, using CHECK() meant that we
wouldn't properly fail if we got error code 0.  Define and use a
CHECK_ERR() to test for a specific error code, and define CHECK() in
terms of it.

13 years agoSphinx HTML: Collapse l4 in ToC in the sidebar
Zhanna Tsitkov [Fri, 1 Jun 2012 17:19:29 +0000 (13:19 -0400)] 
Sphinx HTML: Collapse l4 in ToC in the sidebar

Also,
- resize the width of the document vs sidebar;
- decrease padding in the sidebar;
- mark current l2 in ToC in the sidebar.

13 years agoUse correct profile var in krb5_get_tgs_ktypes
Greg Hudson [Fri, 1 Jun 2012 13:52:20 +0000 (09:52 -0400)] 
Use correct profile var in krb5_get_tgs_ktypes

In r21879, when we converted to using KRB5_CONF macros for profile
variable names, we made a typo in krb5_get_tgs_ktypes and erroneously
started using default_tkt_enctypes instead of default_tgs_enctypes for
TGS requests.  Fix the typo and return to the documented behavior.

ticket: 7155
target_version: 1.10.3
tags: pullup

13 years agoUse a hash table in the KDC lookaside cache
Greg Hudson [Thu, 24 May 2012 06:07:18 +0000 (02:07 -0400)] 
Use a hash table in the KDC lookaside cache

Add a hash table to kdc/replay.c for fast lookup of incoming packets.
Continue to keep a time-ordered linked list of all entries for fast
expiry of stale entries.  The preprocessor constant
LOOKASIDE_HASH_SIZE can be used to change the size of the hash table.

13 years agoAdd a copy of the BSD <sys/queue.h> as k5-queue.h
Greg Hudson [Wed, 30 May 2012 02:46:48 +0000 (22:46 -0400)] 
Add a copy of the BSD <sys/queue.h> as k5-queue.h

queue.h implements various types of linked lists as cpp macros,
without needing any library support.

13 years agoNull pointer deref in kadmind [CVE-2012-1013]
Richard Basch [Tue, 29 May 2012 18:07:03 +0000 (14:07 -0400)] 
Null pointer deref in kadmind [CVE-2012-1013]

The fix for #6626 could cause kadmind to dereference a null pointer if
a create-principal request contains no password but does contain the
KRB5_KDB_DISALLOW_ALL_TIX flag (e.g. "addprinc -randkey -allow_tix
name").  Only clients authorized to create principals can trigger the
bug.  Fix the bug by testing for a null password in check_1_6_dummy.

CVSSv2 vector: AV:N/AC:M/Au:S/C:N/I:N/A:P/E:H/RL:O/RC:C

[ghudson@mit.edu: Minor style change and commit message]

ticket: 7152
target_version: 1.10.2
tags: pullup

13 years agoFix TRACE_GET_CRED_VIA_TKT_EXT format string
Greg Hudson [Thu, 24 May 2012 17:19:17 +0000 (13:19 -0400)] 
Fix TRACE_GET_CRED_VIA_TKT_EXT format string

13 years agoFix S4U user identification in preauth case
Greg Hudson [Thu, 24 May 2012 17:03:26 +0000 (13:03 -0400)] 
Fix S4U user identification in preauth case

In 1.10, encrypted timestamp became a built-in module instead of a
hardcoded padata handler.  This changed the behavior of
krb5_get_init_creds as invoked by s4u_identify_user such that
KRB5_PREAUTH_FAILED is returned instead of the gak function's error.
(Module failures are not treated as hard errors, while hardcoded
padata handler errors are.)  Accordingly, we should look for
KRB5_PREAUTH_FAILED in s4u_identify_user.

On a less harmful note, the gak function was returning a protocol
error code instead of a com_err code, and the caller was testing for a
different protocol error code (KDC_ERR_PREAUTH_REQUIRED) which could
never be returned by krb5_get_init_creds.  Clean up both of those by
returning KRB5_PREAUTH_FAILED from the gak function and testing for
that alone.

Reported by Michael Morony.

ticket: 7136
target_version: 1.10.2
tags: pullup

13 years agoConvert DEBUG_REFERRALS to TRACE_* framework
W. Trevor King [Fri, 18 May 2012 01:26:36 +0000 (21:26 -0400)] 
Convert DEBUG_REFERRALS to TRACE_* framework

The referrals debugging code under DEBUG_REFERRALS ceased building
correctly at some point.  Convert this debugging code to use the
tracing framework instead, including adding new trace macros to
k5-trace.h.

ticket: 7151

13 years agoAdd tests for trace.c formatting
W. Trevor King [Fri, 18 May 2012 01:12:49 +0000 (21:12 -0400)] 
Add tests for trace.c formatting

This improves the previously minimal test coverage of "trace.c".

ticket: 7151

13 years agoAdd support for "{ptype}" trace format specifier
W. Trevor King [Fri, 18 May 2012 01:10:20 +0000 (21:10 -0400)] 
Add support for "{ptype}" trace format specifier

Add the "{ptype}" trace format specifier, for principal name types.
Also document the new option in the "k5-trace.h" comments.

ticket: 7151

13 years agoDocument "{keytab}" trace format specifier
W. Trevor King [Fri, 18 May 2012 01:07:07 +0000 (21:07 -0400)] 
Document "{keytab}" trace format specifier

13 years agoModified the Sphinx HTML page layout
Zhanna Tsitkov [Wed, 23 May 2012 19:59:24 +0000 (15:59 -0400)] 
Modified the Sphinx HTML page layout

1. The Feedback button is moved into the footer;
2. The default page/doc width are set to 960px;

13 years agoExport gss_mech_krb5_wrong from libgssapi_krb5
Greg Hudson [Tue, 22 May 2012 17:45:18 +0000 (13:45 -0400)] 
Export gss_mech_krb5_wrong from libgssapi_krb5

Although there are few legitimate reasons to use gss_mech_krb5_wrong,
it's declared in the public header and exported in the Windows DLL.
So export it from the Unix library as well.

ticket: 7148 (new)
target_version: 1.10.2
tags: pullup

13 years agoMake doc/coding-style point to wiki page
Tom Yu [Tue, 22 May 2012 16:46:21 +0000 (12:46 -0400)] 
Make doc/coding-style point to wiki page

The old doc/coding-style file was out of date; replace its content
with a pointer to the wiki page.

ticket: 7147 (new)

13 years agoExport krb5_set_trace_callback/filename
Greg Hudson [Mon, 21 May 2012 05:39:14 +0000 (01:39 -0400)] 
Export krb5_set_trace_callback/filename

krb5_set_trace_callback and krb5_set_trace_filename were added to
krb5.h in krb5 1.9, but were mistakenly left out of the library export
lists.  Add them now.  Reported by Russ Allbery.

ticket: 7143
target_version: 1.10.2
tags: pullup

13 years agoFix "(empty" typo in "{etypes}" handler in trace.c
W. Trevor King [Wed, 16 May 2012 23:09:46 +0000 (19:09 -0400)] 
Fix "(empty" typo in "{etypes}" handler in trace.c

ticket: 7137

13 years agoFix "(null" typo in "{key}" handler in trace.c
W. Trevor King [Wed, 16 May 2012 21:11:12 +0000 (17:11 -0400)] 
Fix "(null" typo in "{key}" handler in trace.c

ticket: 7134

13 years agoCorrect the name of krb5int_trace in comments
Tom Yu [Fri, 18 May 2012 00:05:22 +0000 (20:05 -0400)] 
Correct the name of krb5int_trace in comments

Patch from W. Trevor King.

ticket: 7133

13 years agoAdd missing $(LIBS) to some shared libraries
Tom Yu [Thu, 17 May 2012 23:32:41 +0000 (19:32 -0400)] 
Add missing $(LIBS) to some shared libraries

Add $(LIBS) to the $(SHLIB_EXPLIBS) for some shared libraries which
did not previously include it, which prevented gcov from working
properly in some cases.

Patch from W. Trevor King.

ticket: 7138

13 years agoRemove mention of util/autoconf
Tom Yu [Thu, 17 May 2012 18:18:27 +0000 (14:18 -0400)] 
Remove mention of util/autoconf

We no longer use our own customized version of autoconf, so remove
mentions of the src/util/autoconf directory where that used to be.

Reported by W. Trevor King.

ticket: 7139 (new)

13 years agoMake mkrel work on non-master branches
Tom Yu [Tue, 15 May 2012 19:15:07 +0000 (15:15 -0400)] 
Make mkrel work on non-master branches

Appending "--" to the git checkout arguments appears to prevent it
from automatically creating a local branch from the remote.  Also
correct the default git URL and clean up a spurious find warning.

13 years agoUpdate CHANGES file generation for Git
Tom Yu [Mon, 14 May 2012 23:14:54 +0000 (19:14 -0400)] 
Update CHANGES file generation for Git

Use the correct git log invocation for generating the CHANGES file.