krb5.git
17 years agoSupport using valgrind on test programs
Ken Raeburn [Tue, 4 Sep 2007 22:59:44 +0000 (22:59 +0000)]
Support using valgrind on test programs

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19916 dc483132-0cff-0310-8789-dd5450dbe970

17 years agorevert accidental commit of gc_frm_kdc.c
Tom Yu [Tue, 4 Sep 2007 18:54:21 +0000 (18:54 +0000)]
revert accidental commit of gc_frm_kdc.c

ticket: 5707

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19915 dc483132-0cff-0310-8789-dd5450dbe970

17 years agofix CVE-2007-4000 modify_policy vulnerability
Tom Yu [Tue, 4 Sep 2007 18:53:09 +0000 (18:53 +0000)]
fix CVE-2007-4000 modify_policy vulnerability

In kadm5_modify_policy_internal, check for nonexistence of policy
before doing anything with it, to avoid memory corruption.

ticket: new
target_version: 1.6.3
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19914 dc483132-0cff-0310-8789-dd5450dbe970

17 years agofix CVE-2007-3999 svc_auth_gss.c buffer overflow
Tom Yu [Tue, 4 Sep 2007 18:52:56 +0000 (18:52 +0000)]
fix CVE-2007-3999 svc_auth_gss.c buffer overflow

Make sure svcauth_gss_validate adequately checks oa->oa_length prior
to copying into rpcbuf.

ticket: new
target_version: 1.6.3
tags: pullup
component: krb5-libs

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19913 dc483132-0cff-0310-8789-dd5450dbe970

17 years agobump accessor version number
Tom Yu [Tue, 4 Sep 2007 03:18:05 +0000 (03:18 +0000)]
bump accessor version number

ticket: 3334

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19911 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoBail out if encoded "ticket" doesn't decode correctly. This allows
Tom Yu [Tue, 4 Sep 2007 02:10:13 +0000 (02:10 +0000)]
Bail out if encoded "ticket" doesn't decode correctly.  This allows
t_cc test case to pass and allows non-tickets to be stored (for now).

ticket: 5697

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19910 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoGSS-API Win64 support
Jeffrey Altman [Sun, 2 Sep 2007 14:12:13 +0000 (14:12 +0000)]
GSS-API Win64 support

The name of the Leash API DLL on Win64 is "leashw64.dll".

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19909 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoMake internal functions static
Ken Raeburn [Fri, 31 Aug 2007 00:17:04 +0000 (00:17 +0000)]
Make internal functions static

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19900 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoDon't export file keytab implementation functions
Ken Raeburn [Fri, 31 Aug 2007 00:08:41 +0000 (00:08 +0000)]
Don't export file keytab implementation functions

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19899 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoMake ccache handle referrals better by storing both server principal
Tom Yu [Wed, 29 Aug 2007 22:59:52 +0000 (22:59 +0000)]
Make ccache handle referrals better by storing both server principal
names if they differ between the creds structure and the encoded
ticket and by looking up the server principal using the client's realm
if not found and server's realm was initially the referral (empty)
realm.

ticket: 5697
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19898 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM file ccache support improvements
Jeffrey Altman [Wed, 29 Aug 2007 22:38:26 +0000 (22:38 +0000)]
NIM file ccache support improvements

NIM supports the ability of the user to specify an
explicit ccache name for use with an identity.  If
this ccache is a FILE ccache, we need to be able to
store credentials into the ccache.  krb5cred.dll
did not previously specify the KRB5_TC_OPENCLOSE flag
on the ccache when setting other flags such as
KRB5_TC_NOTICKET (which is used with MSLSA ccaches).
As a result, open/close mode was turned off, the
ccache file would be opened in read-only mode and
attempts to store credentials into the ccache would
fail.  This is fixed by specifying KRB5_TC_OPENCLOSE
when setting the ccache flags.

When a CCAPI implementation is unavailable, we need
to automatically generate the FILE ccache name if
one has not already been specified.  We default to
a file stored in the user's Local Settings\Temp
directory.  The generated ccache is then added to
the file ccache watch list.

Finally, some users have complained about the
behavior of Microsoft Vista's UAC mode and how
it makes the CCAPI cache useless for storing
credentials that must be used in conjunction
with processes that do not have restricted
privileges since those processes run in a
separate logon session.  For these users we
have added a "DefaultToFileCache" registry
value that can be specified to force the use
of FILE ccaches in preference to CCAPI ccaches
when there is no explicit ccache specified
for a given identity.  Unlike CCAPI ccaches,
the FILE ccaches are accessible from both
restricted and unrestricted processes when
UAC is active.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19897 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM - a small readability change
Jeffrey Altman [Wed, 29 Aug 2007 22:23:16 +0000 (22:23 +0000)]
NIM - a small readability change

Instead of testing for NOT the machine key, test
for is the user key.

ticket: new
component: windows/identity/kconfig/api.c

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19896 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: remove unused symbols
Jeffrey Altman [Wed, 29 Aug 2007 22:20:28 +0000 (22:20 +0000)]
NIM: remove unused symbols

Remove unused preprocessor symbols automatically added by Visual Studio's
dialog editor.

ticket: new
component: windows/identity/ui/resource.h

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19895 dc483132-0cff-0310-8789-dd5450dbe970

17 years ago-S sname option for kvno
Tom Yu [Wed, 29 Aug 2007 20:28:06 +0000 (20:28 +0000)]
-S sname option for kvno

New option to use krb5_sname_to_principal() for building principal
names, which is useful for testing referrals.

ticket: new
target_version: 1.6.3
tags: pullup
component: krb5-clients

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19894 dc483132-0cff-0310-8789-dd5450dbe970

17 years agotest program build problem
Ken Raeburn [Wed, 29 Aug 2007 20:16:03 +0000 (20:16 +0000)]
test program build problem

Split out the "standalone" test code from trval.c, so we produce
trval.o only once, instead of twice with different compilation flags.
One case generated the "trval" program directly, but produced and
deleted trval.o as an intermediate step in the compiler, which messes
things up if make thinks it's already built trval.o for another test
program.

Make the standalone test into t_trval.

Build problem reported by Will Fiveash of Sun, about ten minutes ago.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19893 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoWindows 64-bit CCAPI DLL name
Jeffrey Altman [Wed, 29 Aug 2007 17:20:20 +0000 (17:20 +0000)]
Windows 64-bit CCAPI DLL name

The 64-bit CCAPI DLL name is krbcc64.dll not krbcc32.dll.
Conditionalize it on _WIN64.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19892 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: 64-bit Windows Support and Removal of Compile Time Warnings
Jeffrey Altman [Tue, 28 Aug 2007 20:58:45 +0000 (20:58 +0000)]
NIM: 64-bit Windows Support and Removal of Compile Time Warnings

This patch permits Network Identity Manager to be built for 64-bit Windows.
In the process all compile time warnings have been taken care of.

For 64-bit Windows, we do not build the Kerberos v4 Credential Provider
and we will not attempt to load the krb524 library.

Note that when testing the 64-bit NIM, there is no CCAPI at the
moment so you must manually specify a FILE: ccache as part of the
identity's Kerberos v5 configuration if you want to use cache's
other than the MSLSA.

This patch also consolidates the computation of the default ccache
name into utility functions:

  khm_krb5_get_identity_default_ccache
  khm_krb5_get_identity_default_ccacheA

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19891 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoImplement KRB5_ATTR_DEPRECATED for Windows
Ken Raeburn [Tue, 28 Aug 2007 00:58:56 +0000 (00:58 +0000)]
Implement KRB5_ATTR_DEPRECATED for Windows

ticket: 2836

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19890 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoRemove macros and associated comments that appear to be for
Ken Raeburn [Tue, 28 Aug 2007 00:28:17 +0000 (00:28 +0000)]
Remove macros and associated comments that appear to be for
multiple-inclusion protection of only sub-portions of k5-int.h,
presumably from a time when those portions were separate files.  Since
the entire file is now protected against multiple inclusions, these
other macros aren't needed.

A few are left, mostly because they also appear in other files.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19889 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoFor gcc 4.x, add sentinel attribute to krb5_build_principal
Ken Raeburn [Mon, 27 Aug 2007 23:42:35 +0000 (23:42 +0000)]
For gcc 4.x, add sentinel attribute to krb5_build_principal

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19888 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoDefine KRB5_ATTR_DEPRECATED (and undef at end of file) and attach it
Ken Raeburn [Mon, 27 Aug 2007 23:31:33 +0000 (23:31 +0000)]
Define KRB5_ATTR_DEPRECATED (and undef at end of file) and attach it
to the function declarations enabled by KRB5_DEPRECATED.  Definition
depends on having GCC version 3.2.3 or later.  (Earlier versions may
have supported it, but that's what I found docs for.  Windows compiler
support coming later, based on Jeff's suggestions.)

ticket: 2836
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19887 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoIgnore KRB5_ATTR_DEPRECATED
Ken Raeburn [Mon, 27 Aug 2007 23:17:21 +0000 (23:17 +0000)]
Ignore KRB5_ATTR_DEPRECATED

ticket: 2836
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19886 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoRemove some unused codes
Ken Raeburn [Mon, 27 Aug 2007 22:04:05 +0000 (22:04 +0000)]
Remove some unused codes

ticket: 5642

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19885 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoRemove unused PLURAL macro
Ken Raeburn [Mon, 27 Aug 2007 22:01:01 +0000 (22:01 +0000)]
Remove unused PLURAL macro

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19884 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoMissing ../ in relative path
Alexandra Ellwood [Mon, 27 Aug 2007 19:03:43 +0000 (19:03 +0000)]
Missing ../ in relative path

ticket: 5670

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19883 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoUpdated so that paths are now relative and don't contain my homedir.
Alexandra Ellwood [Mon, 27 Aug 2007 18:49:28 +0000 (18:49 +0000)]
Updated so that paths are now relative and don't contain my homedir.
Oops.

ticket: 5670

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19882 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoWindows 64-bit - avoid missing symbol errors
Jeffrey Altman [Mon, 27 Aug 2007 07:08:24 +0000 (07:08 +0000)]
Windows 64-bit - avoid missing symbol errors

Microsoft defaults stack checking (/Gs) to on.  This requires
that bufferoverflowU.lib be included in the link step.  The
macro SCLIB in the build system specifies this library on
versions of Windows that require it.  Include SCLIB on the
link line of the makefile.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19881 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoChange use of choice_pa_pk_as_rep_UNKNOWN to
Ezra Peisach [Sun, 26 Aug 2007 12:30:24 +0000 (12:30 +0000)]
Change use of choice_pa_pk_as_rep_UNKNOWN to
choice_pa_pk_as_rep_draft9_UNKNOWN to cleanup warning... Value of enum
same in both cases...

ticket: 5617

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19880 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoIf libdir is /usr/lib, don't add the -L argument to the library flags
Ken Raeburn [Sat, 25 Aug 2007 09:03:36 +0000 (09:03 +0000)]
If libdir is /usr/lib, don't add the -L argument to the library flags
to be output.

ticket: 5657

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19879 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoExpect keytab error to be reported
Ken Raeburn [Sat, 25 Aug 2007 01:26:27 +0000 (01:26 +0000)]
Expect keytab error to be reported

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19878 dc483132-0cff-0310-8789-dd5450dbe970

17 years agokrb5int_free_addrlist needed too
Ken Raeburn [Sat, 25 Aug 2007 00:50:41 +0000 (00:50 +0000)]
krb5int_free_addrlist needed too

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19877 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoOops, _krb5_conf_boolean is needed by a test program
Ken Raeburn [Sat, 25 Aug 2007 00:47:39 +0000 (00:47 +0000)]
Oops, _krb5_conf_boolean is needed by a test program

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19876 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoRemove from export list several encode_* and decode_* symbols that are
Ken Raeburn [Fri, 24 Aug 2007 23:33:44 +0000 (23:33 +0000)]
Remove from export list several encode_* and decode_* symbols that are
not used outside the krb5 library.  (In some cases, the only use is in
our own test programs, which means two things: The test programs
should probably be changed to use the accessor interface, and some of
the newer encoder/decoder functions aren't being unit-tested.)

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19875 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoStop exporting _krb5_* (note leading underscore) and asn1* symbols
Ken Raeburn [Fri, 24 Aug 2007 23:04:47 +0000 (23:04 +0000)]
Stop exporting _krb5_* (note leading underscore) and asn1* symbols

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19874 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoMissed one
Ken Raeburn [Fri, 24 Aug 2007 22:41:12 +0000 (22:41 +0000)]
Missed one

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19873 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoRemove os_get_default_config_files, and the krb5int_* functions not
Ken Raeburn [Fri, 24 Aug 2007 22:39:40 +0000 (22:39 +0000)]
Remove os_get_default_config_files, and the krb5int_* functions not
actually called directly from outside the library, from the export
list.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19872 dc483132-0cff-0310-8789-dd5450dbe970

17 years agopullup to trunk
Alexandra Ellwood [Fri, 24 Aug 2007 20:32:28 +0000 (20:32 +0000)]
pullup to trunk

ticket: 5643
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19871 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoIn clean-windows, replace spaces with tab
Ezra Peisach [Fri, 24 Aug 2007 17:50:50 +0000 (17:50 +0000)]
In clean-windows, replace spaces with tab

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19870 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: version update
Jeffrey Altman [Fri, 24 Aug 2007 14:54:23 +0000 (14:54 +0000)]
NIM: version update

Set the Network Identity Manager application version to 1.3.1 and the
API version to 10.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19869 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Revert ticket 5604
Jeffrey Altman [Fri, 24 Aug 2007 14:52:59 +0000 (14:52 +0000)]
NIM: Revert ticket 5604

There was a spurious trigger for reloading the layout of the Network
Identity Manager timer code.  This was presumably introduced to
mitigate a problem where the identity and outline status might become
stale.  (Ticket 5604)

This should no longer be necessary.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19868 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Reposition New Credentials Dialog if necessary
Jeffrey Altman [Fri, 24 Aug 2007 14:51:46 +0000 (14:51 +0000)]
NIM: Reposition New Credentials Dialog if necessary

The new credentials dialog in Network Identity Manager does not check
whether it is positioned outside of the display screen.  It tries to
position itself in the center of the primary display if the Network
Identity Manager window is hidden and it tries to center itself over
the main window if the main window is visible.  If the main window is
too close to the edge of the screen, this may result in the new
credentials window being partially outside the display area.  This is
especially a problem when the new credentials dialog switches to the
advanced view.

The patch checks whether the window rectangle is visible before
repositioning the new credentials dialog and adjusts the window
rectangle so that it is.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19867 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: External changes to default identity are improperly reflected by krb5 provider
Jeffrey Altman [Fri, 24 Aug 2007 14:49:42 +0000 (14:49 +0000)]
NIM: External changes to default identity are improperly reflected by krb5 provider

The Kerberos v5 identity provider for Network Identity Manager
monitors the "Software\MIT\kerberos5" registry key for the logged in
user for changes to the "ccname" value.  If a change is noticed, it
would query the Kerberos v5 library for the default credentials cache
and attempt to determine the new default identity, which it would then
communicate to the Network Identity Manager application.

When the identity provider queried the Kerberos v5 library after a
registry change notification, it used a cached krb5_context for the
thread.  The default credentials cache found using this krb5_context
may not be what the registry specified.

This patch modifies the code in k5_ccname_monitor_thread() to create a
use a new krb5_context when querying for the default credentials cache
following a registry change notification.  Doing so ensures that
Kerberos v5 library takes the new registry value into account.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19866 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: khcint_remove_space() frees memory too soon
Jeffrey Altman [Fri, 24 Aug 2007 14:47:30 +0000 (14:47 +0000)]
NIM: khcint_remove_space() frees memory too soon

The Network Identity Manager Configuration Provider module keeps track
of the application and plug-in configuration settings organized into
configuration spaces.  The state of each configuration space is
maintained in a reference counted object.  Once all the references are
released, the Configuration Provider will attempt to free the
resources allocated for the object.

If the configuration space was marked for deletion, then the registry
keys associated with the object need to be deleted when the
object is being discarded.  Due to a coding error, the memory
allocated for the object would be freed before the associated registry
keys were deleted.  This could result in a memory access error.

The patch corrects the code in khcint_remove_space() to free the
allocated memory after all the remaining clean-up steps have been
performed.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19865 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Add Identity Provider Pre-Process Message
Jeffrey Altman [Fri, 24 Aug 2007 14:45:37 +0000 (14:45 +0000)]
NIM: Add Identity Provider Pre-Process Message

The Network Identity Manager application does not provide a user
interface for identity specification.  That responsibility lies with
the identity provider.  Whenever a dialog needs to allow the user to
specify an identity, the identity provider has to populate the dialog
with the necessary controls so that the user can specify an identity.
In the case of the Kerberos v5 identity provider, the controls allow
the user to specify a username and a realm.

Once the dialog is populated, the application will dispatch window
messages to the identity provider.  The identity provider will handle
the window messages and notify the application when the selected
identity changes.

One deficiency of the API was that there was no message to notify the
identity provider that an identity selection has to be made
immediately.  When the user invokes the default action for a dialog by
hitting enter, the only message received by the dialog is a command
identifier of the default action.  In this case, the identity provider
will not get a chance to notify the application of the identity
selection.

This patch fixes the API deficiency by introducing a new message,
WMNC_IDENT_PREPROCESS, which the application can use to notify the
identity provider that the dialog box is about to be processed.  In
response, the identity provider can notify the application of the
selected identity even if no other messages were received by the
identity provider.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19864 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Keep API release documentation up to date
Jeffrey Altman [Fri, 24 Aug 2007 14:43:30 +0000 (14:43 +0000)]
NIM: Keep API release documentation up to date

Update the Network Identity Manager developer documentation to include
a reference to the 1.3.0 release which was included with Kerberos for
Windows 3.2.1.

The release history and, in particular, the API versions corresponding
to each release is important for third-party plug-in developers.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19863 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: support include files in schemas
Jeffrey Altman [Fri, 24 Aug 2007 14:41:52 +0000 (14:41 +0000)]
NIM: support include files in schemas

The ccsv.pl and csvschema.cfg scripts are used to generate "C" source
code from CSV files containing tabular data.  In particular, these are
used to define the configuration schema for Network Identity Manager
and some of its plug-ins.

It is desirable to be able to include arbitrary header files and
define macros in the generated C code so that the schema definition
can use them.  This patch allows the CSV files to contain headers that
define lines of text that will be included literally in the generated
C code.  Lines at the start of schema CSV file that begin with '#@'
will be stripped of the '#@' prefix and inserted into the C code.

E.g: The following line at the start of a schema CSV file:

#@#include<windows.h>

,will result in the following text in the C code:

#include<windows.h>

Then the schema definition can use macros of the form:

ClrHeaderExpSel, KC_INT32, "RGB(195, 94, 94)"

,which use macros such as RGB that are defined in the included header
file.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19862 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: remove unused code from ui/credwnd.c
Jeffrey Altman [Fri, 24 Aug 2007 14:40:23 +0000 (14:40 +0000)]
NIM: remove unused code from ui/credwnd.c

Remove unused code from Network Identity Manager credwnd.c.  The code
was meant to construct a user interface context based on where the
user right clicks on the credentials display.  However, doing so
without indicating the changed selection to the user results in the
application performing an operation on an identity or credential that
the user didn't intend to select.

The code was commented out and was never used in any recent release of
Kerberos for Windows.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19861 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Selection Issues
Jeffrey Altman [Fri, 24 Aug 2007 14:38:45 +0000 (14:38 +0000)]
NIM: Selection Issues

Credentials selection in Network Identity Manager has usability
issues due to the following causes:

- The "cursor row" is not always selected.

  The "cursor row" is the row which the "cursor" is on. Navigating the
  credentials view using the keyboard or clicking the credentials
  display with the mouse will move the cursor to different rows.
  However, this cursor row is not always selected, especially when
  Network Identity Manager starts.

  Having the selection be independent of the cursor row is a
  requirement for supporting "toggle" selections (holding the 'ctrl'
  key while clicking), which is a standard way of doing multiple
  selections on Windows.

  The problem with the cursor row not being selected when Network
  Identity Manager starts is due to the delayed start of its plug-ins.
  Even though the first row is initially selected, when plug-ins
  complete initialization and notify the application about the
  credentials that they see, those credentials end up accumulating
  under different identities.  The existing code didn't enforce the
  selection state of the identity on the newly added
  credentials. Since there were unselected credentials under the
  selected outline level, the code would then turn off the selected
  bit for the outline (which usually is an outline level for an
  identity) for consistency.

  The patch changes the behavior to enforce the selection state of the
  enclosing outline on any new outline levels or credentials that are
  added under it.  This prevents an outline level from losing its
  selection state when new credentials are added under it.

- Identities may have stale data associated with it.

  The credentials view maintains a set of cached properties for each
  identity that has credentials.  During each refresh cycle, it would
  go through the credentials and update the properties of each
  identity.  However it would not update the properties for identities
  that are not associated with any credentials.

  When the credentials associated an identity were deleted, the cached
  properties for that identity sometimes never got reset.  If the
  identity was marked as "always visible", then it would be listed in
  the credentials view along with the stale properties.

  This patch properly initializes the properties of identities which
  are not associated with any identities.

- Selection state is not updated when switching views.

  The credentials view maintains selection state for individual
  credentials when switching views.  The same is not true for the
  outlines since the outline needs to be reconstructed during the
  switch.

  The exising code failed to update the selection state of the
  outlines after switching the view to reflect the the selection state
  of the credentials.  As a result, once a the user switched a view,
  she might see outline levels which do not appear to be selected even
  though all the credentials contained at the outline level appear
  selected.

  This patch properly adjusts the selection state of outline nodes to
  correspond to the selection state of the contained credentials.

- Selection state may be inconsistent when more than one credential is
  associated with a single row.

  Some rows may represent more than one credential.  A collapsed
  outline represents all the credentials contained within that outline
  level.  In addition, two credentials that will appear the same to
  the user (because all the displayed properties are the same) will be
  represented by one row.

  The selection state of these rows should be consistent with the
  selection state of all the credentials that it represents.  The
  previous code did not enforce this constraint. This patch aims to
  fix this by enumerating all the credentials that are represented
  by each row and setting the selection state of each credential to
  match the selection state of the row.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19860 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Handle WM_PAINT messages without update regions
Jeffrey Altman [Fri, 24 Aug 2007 14:37:07 +0000 (14:37 +0000)]
NIM: Handle WM_PAINT messages without update regions

It is possible to receive a WM_PAINT message in Windows without there
being an update region.  For example, this can be caused by someone
calling RedrawWindow() with the RDW_INTERNALPAINT flag set.  In this
case, GetUpdateRect() will indicate that there is no update region and
calling BeginPaint()/EndPaint() results in incorrect behavior.

The credentials window in Network Identity Manager needs to perform
special handling for this case by obtaining a proper device context
and completing the drawing operation.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19859 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: do not permit resizing of filler columns
Jeffrey Altman [Fri, 24 Aug 2007 14:34:30 +0000 (14:34 +0000)]
NIM: do not permit resizing of filler columns

The credentials display of Network Identity Manager allows the user to
change the order and size of the displayed columns.  However, some
columns are not resizable.

An oversight in the earlier code allowed the user to change the size
of "filler" columns.  These columns are sized to fill up the remainder
of the display area after the other columns have been allocated.
Their width is determined by the size of the credentials display and
the width of the other columns.  They are used in the basic view where
the only columns are the flags column (fixed width) and the identity
column (filler).

This patch prevents the "filler" columns (columns with the
KHUI_CW_COL_FILLER flag) from being resized.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19858 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Cannot cancel timers which have inserted a WM_TIMER message into the queue
Jeffrey Altman [Fri, 24 Aug 2007 14:33:09 +0000 (14:33 +0000)]
NIM: Cannot cancel timers which have inserted a WM_TIMER message into the queue

The credentials view in Network Identity Manager displays several user
interface elements that need to be updated periodically such as any
fields that denote the time remaining for a credential or an identity,
or an icon and coloring used to indicate the expiration state.  When
the display rows are computed, the credentials view creates a set of
timers that reference each row that times out when that row needs to
be redrawn.

Since the rows change when switching views or when the outline is
recomputed, all the timers are canceled and re-scheduled.  However, a
race conditions exists where the timer times-out before it is
canceled, in which case a WM_TIMER message is placed in the
credential window's message queue.  Windows does not support
canceling a timer that has already fired and has been placed on the
message queue.

By the time the WM_TIMER message is received by the window, the rows
of the display would have been recomputed and the row that the message
references may not be what it intended to reference. A spurious
WM_TIMER message is harmless when it refers to a row corresponding to
a credential.  However, the existing code assumed that if a timer event
is received that referred to an outline row, then that outline must be
an expanded view of an identity, which is currently the only type of
outline row that receives timers.  This assumption does not always
hold in the case of a spurious WM_TIMER message and may lead to the
code attempting to use the outline data as a handle to an identity.
The patch fixes the problem by checking if the row is actually an
expanded view of an identity and ignoring the message if it is not.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19857 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Context menu selection issues
Jeffrey Altman [Fri, 24 Aug 2007 14:29:37 +0000 (14:29 +0000)]
NIM: Context menu selection issues

The handler for WM_CONTEXTMENU in the credentials view of Network
Identity Manager assumed that the context menu was invoked using the
mouse.  If it was, then the message parameters would specify the x and
y co-ordinates of the mouse.  The context menu can also be invoked via
the keyboard, in which case the x- and y- coordinates are set to
(-1,-1).

An additional problem with the code is that it was not selecting the
row that was right-clicked on if it was not already selected.  This
results in the some of the commands on the context menu targetting
credentials that the user didn't intend to target.

This patch adds support for handling the context menu when it is
invoked via the keyboard and also sets the selection to the row that
was right-clicked if the user invokes the context menu using the
mouse.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19856 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Color Schemas
Jeffrey Altman [Fri, 24 Aug 2007 14:28:21 +0000 (14:28 +0000)]
NIM: Color Schemas

The default color scheme used by the Network Identity Manager credentials
display can sometimes cause the text to be difficult to read.  In
addition, since some of the colors are derived from colors used by the
current Windows theme, the selection, window background and text
colors may be mismatched with the colors that are hardcoded into the
application.

To rememdy this problem, this patch defines a new set of colors
that will be used with the credentials display.  The new scheme
doesn't use a special color to distinguish the default identity which
is already indicated with the text "(Default)" displayed alongside it.
Instead the colors are used to denote the remaining lifetime of
credentials and identities.

Also, the color scheme defines all the colors that it uses instead of
deriving some of them from the Windows color scheme.

All the color information is now kept in the Network Identity Manager
UI schema.  The schema automatically maps to the registry, so users
(and deployers) can override the colors by creating the necessary
registry keys and values.  The registry keys containing color
information are:

  Software\MIT\NetIDMgr\CredWindow\Themes and
  Software\MIT\NetIDMgr\CredWindow\Themes\Default

The "Default" key contains the default color scheme.  The color value
names are defined in ui\uiconfig.csv under Themes\_Schema
configuration subspace.  Each color is represented by a 32-bit number.
The low-order 24 bits contain a COLORREF value.  The high-order 8 bits
contain an alpha value which, if non-zero, will be used to blend the
color with the selection color (color value named ClrSelection).

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19855 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: New command-line options --hide and --show / new command-line help dialog
Jeffrey Altman [Fri, 24 Aug 2007 14:26:11 +0000 (14:26 +0000)]
NIM: New command-line options --hide and --show / new command-line help dialog

Add two command-line options to the Network Identity Manager application:

--hide : If there is already an instance of Network Identity Manager
         running in the user's session, this will cause the main
         window of that instance to be hidden.

--show : Unhides the main window of the running instance.

If no options are specified when starting netidmgr.exe while another
instance is running, the running instance will perform the default
action as configured in the user's preferences.  By default, this will
be to show the main window.

The message box that displayed the command-line options if an invalid
option is specified has been replaced with a dialog box that shows the
options in a more readable rich text control.  The contents of the
control are specified in ui/lang/<lang>/cmdline.rtf.

Do not edit cmdline.rtf with Microsoft Word.  The output of Word is
incompatible with the RichEdit20 component.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19854 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: Identity Configuration Panel Fixes
Jeffrey Altman [Fri, 24 Aug 2007 14:23:14 +0000 (14:23 +0000)]
NIM: Identity Configuration Panel Fixes

In the identity configuration panel of Network Identity Manager, the
user can specify a new identity which can then be configured.

The existing code didn't check if the identity specified by the user
already exists.  The patch adds the check.  If the identity already
exists, the user is notified as such.

Another bug prevented the user from configuring an identity that was
added back in following the deletion of the same identity during the
same session.  The deleted status of the identity was not reset when
it was added back.

Additionally, this patch adds code that has already been added to the
new credentials dialog to apply Windows XP theme textures to the child
dialogs used as tab panels in the configuration dialog.  Child dialogs
don't automatically adjust the theme settings based on whether it is
nested inside a tab control.  The theme must be applied manually.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19853 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: resource leak in khui_action_trigger()
Jeffrey Altman [Fri, 24 Aug 2007 14:20:31 +0000 (14:20 +0000)]
NIM: resource leak in khui_action_trigger()

The khui_action_trigger() function in the Network Identity Manager API
creates a copy of the current user interface context (which contains
information about the credentials and identities that are currently
selected) before triggering the requested action.  Then it will use
the copy to restore the user interface context to its previous state.
A coding error results in the copy of the context to never be
released.  As a result there is a resource leak.

The attached patch fixes the leak by releasing the context once it
is no longer needed.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19852 dc483132-0cff-0310-8789-dd5450dbe970

17 years agono unistd.h on Windows
Jeffrey Altman [Fri, 24 Aug 2007 13:53:46 +0000 (13:53 +0000)]
no unistd.h on Windows

do not include unistd.h on Windows because it doesn't exist

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19851 dc483132-0cff-0310-8789-dd5450dbe970

17 years agocleanup src/lib/gssapi/krb5/error_map.h on Windows
Jeffrey Altman [Fri, 24 Aug 2007 13:51:31 +0000 (13:51 +0000)]
cleanup src/lib/gssapi/krb5/error_map.h on Windows

during 'clean' delete the generated file error_map.h

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19850 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoAdd documentation for CCAPI
Alexandra Ellwood [Thu, 23 Aug 2007 16:53:53 +0000 (16:53 +0000)]
Add documentation for CCAPI

Added Doxygen-based documentation to CredentialsCache.h and checked
in a copy of the html output of that documentation.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19849 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoUse -Wno-format-zero-length if GCC version supports it
Ken Raeburn [Thu, 23 Aug 2007 07:11:21 +0000 (07:11 +0000)]
Use -Wno-format-zero-length if GCC version supports it

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19848 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoAdded errmap.h to the generate-files-mac target
Alexandra Ellwood [Mon, 20 Aug 2007 19:24:11 +0000 (19:24 +0000)]
Added errmap.h to the generate-files-mac target

ticket: 5654

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19846 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoread_entropy_from_device on partial read will not fill buffer
Ezra Peisach [Mon, 20 Aug 2007 14:50:41 +0000 (14:50 +0000)]
read_entropy_from_device on partial read will not fill buffer

read_entropy_from_device() will loop in read until the desired number
of bytes are read from the device (/dev/random, /dev/urandom).  I have
observed that for /dev/random, if there is not enough bits available
for reading - it will return a partial read.  The code would loop in
this case, but never advance the location to place the new bytes -
hence the start of the buffer would be filled again - leaving the tail
end as stack garbage.

ticket: new
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19845 dc483132-0cff-0310-8789-dd5450dbe970

17 years agomake depend
Ken Raeburn [Thu, 16 Aug 2007 22:59:49 +0000 (22:59 +0000)]
make depend

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19832 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoremap mechanism-specific status codes in mechglue/spnego
Ken Raeburn [Thu, 16 Aug 2007 22:55:06 +0000 (22:55 +0000)]
remap mechanism-specific status codes in mechglue/spnego

This patch creates a mapping in the mechglue/spnego code to modify
mechanism status codes when passing them back to the application, so
that mechglue's display_status dispatcher can determine the correct
mechanism to dispatch to.

This is part of the "get enhanced error messages from gssapi
applications" project; ticket 5590 has updates to the Kerberos 5
mechanism to extract enhanced error messages (when there are any) from
the Kerberos library.

util/gen.pl, util/t_*.pm: New code generation script and templates.

lib/gssapi/generic: Add a new, global mapping that enumerates the
{mechOID,status} pairs as they're seen, allowing a magic mechOID value
to indicate com_err error codes from mechglue and spnego, and
reserving status code 0 for unknown errors.  Preload the Kerberos
"wrong principal" error code once for each mechanism OID used for
Kerberos, so the entries get fixed positions (1-3) in the table.

lib/gssapi/gss_libinit.c: Call the initializer and destructor
functions.

lib/gssapi/mechglue, lib/gssapi/spnego: Enter all mechanism-generated
or locally-generated status codes into the mapping table, and return
the table index to the application.  Do the reverse in display_status,
to get the messages from the mechanism..

lib/rpc: Define new function gssrpcint_printf to use for debugging
instead of printf, to redirect output away from dejagnu; add a couple
more debugging calls.  Check for minor status codes 1-3 now instead of
KRB5KRB_AP_WRONG_PRINC.

tests/dejagnu/krb-standalone/gssftp.exp: Test getting more detailed
error messages back, by having the ftp client attempt to authenticate
to a non-existent service, and examining the error message for the
service principal name.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19831 dc483132-0cff-0310-8789-dd5450dbe970

17 years ago(krb5_gss_internal_release_oid): Always clear *minor_status
Ken Raeburn [Thu, 16 Aug 2007 21:58:35 +0000 (21:58 +0000)]
(krb5_gss_internal_release_oid): Always clear *minor_status

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19830 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoOnly do fake-install in pkinit if building pkinit
Ken Raeburn [Thu, 16 Aug 2007 15:09:58 +0000 (15:09 +0000)]
Only do fake-install in pkinit if building pkinit

ticket: 5617

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19829 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoChange prototype for g_token_size to match function declaration later
Ezra Peisach [Thu, 16 Aug 2007 01:52:10 +0000 (01:52 +0000)]
Change prototype for g_token_size to match function declaration later
in file. (OM_Uint32 changed to unsigned int). On a 64 bit architecture, they
are different.

ticket: 5581
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19828 dc483132-0cff-0310-8789-dd5450dbe970

17 years agocompilation failure with IRIX native compiler
Ezra Peisach [Thu, 16 Aug 2007 01:40:50 +0000 (01:40 +0000)]
compilation failure with IRIX native compiler

gss_release_buffer takes OM_uint32* as an argument, not OM_uint32.

ticket: new
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19827 dc483132-0cff-0310-8789-dd5450dbe970

17 years agosprintf conversion to snprintf in r19703 introduced some signed/unsigned
Ezra Peisach [Wed, 15 Aug 2007 00:31:01 +0000 (00:31 +0000)]
sprintf conversion to snprintf in r19703 introduced some signed/unsigned
warnings. Cleanup.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19823 dc483132-0cff-0310-8789-dd5450dbe970

17 years agot_ser should no longer use kdb libraries
Ezra Peisach [Tue, 14 Aug 2007 18:22:58 +0000 (18:22 +0000)]
t_ser should no longer use kdb libraries

Remove the call to krb5_db_fini() - as rest of the db code was pulled
during DAL integration.  This removes dependency on db libraries -
alter Makefile.in.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19822 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoFree memory leak in do_test() from asprintf integration
Ezra Peisach [Tue, 14 Aug 2007 18:11:36 +0000 (18:11 +0000)]
Free memory leak in do_test() from asprintf integration

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19821 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoremove inadvertent commit of symbols temporarily exported in
Jeffrey Altman [Tue, 14 Aug 2007 02:54:15 +0000 (02:54 +0000)]
remove inadvertent commit of symbols temporarily exported in
a sandbox to permit building of pkinit code on Windows.

ticket: 5645

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19819 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoexport krb5_get_profile
Jeffrey Altman [Sat, 11 Aug 2007 15:15:44 +0000 (15:15 +0000)]
export krb5_get_profile

Export krb5_get_profile.  Remove comment saying it should be
added and just do it.

ticket: new
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19818 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoSimulate changing views when the REFRESH action is run and when credentials are updated.
Kevin Koch [Fri, 10 Aug 2007 14:37:04 +0000 (14:37 +0000)]
Simulate changing views when the REFRESH action is run and when credentials are updated.
This makes the symptoms go away but does not solve whatever the underlying problem is.

I missed this change yesterday.

This should be added to kfw-3_2_1-beta2.

Ticket: 5604
Tags: pullup
Target_Version: 1.6.3
Tags: Pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19813 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoneed more dylib_file specs for darwin
Ken Raeburn [Thu, 9 Aug 2007 20:09:48 +0000 (20:09 +0000)]
need more dylib_file specs for darwin

Currently the KDB LDAP plugin won't build on Mac OS X 10.4 if a tree
hasn't been previously installed, because it can't find the libraries
that we haven't installed yet.  (Finding earlier versions isn't
sufficient, if symbols are needed that are not present in the
installed versions.)

Add -dylib_file specs for libkadm5srv and libkdb to LDCOMBINE, in
addition to libkrb5support that was already there.

Unfortunately, this makes shlib.conf dependent on more library version
numbers.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19771 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoSimulate changing views when the REFRESH action is run and when credentials are updated
Kevin Koch [Thu, 9 Aug 2007 14:52:15 +0000 (14:52 +0000)]
Simulate changing views when the REFRESH action is run and when credentials are updated

This makes the symptoms go away but does not solve whatever the underlying problem is.

Ticket: 5604
Tags: pullup
Target_Version: 1.6.3

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19770 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoControl watermark display with registry entry; document the registry entry
Kevin Koch [Thu, 9 Aug 2007 13:31:11 +0000 (13:31 +0000)]
Control watermark display with registry entry; document the registry entry

Ticket: 5609
Tags: pullup
Target_Version: 1.6.3

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19769 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoThe background color is changed to COLOR_WINDOW
Kevin Koch [Thu, 9 Aug 2007 13:22:59 +0000 (13:22 +0000)]
The background color is changed to COLOR_WINDOW

Ticket: 5607
Tags: pullup
Target_Version: 1.6.3

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19768 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoGet rid of some old SunOS 4 config stuff
Ken Raeburn [Wed, 8 Aug 2007 22:16:44 +0000 (22:16 +0000)]
Get rid of some old SunOS 4 config stuff

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19762 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoPatch developed by kpkoch with style changes from jaltman
Jeffrey Altman [Wed, 8 Aug 2007 17:45:37 +0000 (17:45 +0000)]
Patch developed by kpkoch with style changes from jaltman

The size/position of the main application window is
internally updated in response to WM_MOVE messages but is
only written to the registry after a timeout period.  This
is done due to the large number of WM_MOVE messages that
can be delivered during a windows drag / resize operation
involving the user or explorer shell's tile and cascade
operations.  (or those involving third party desktop managers.)

In NIM 1.8 two different application view modes (standard
and advanced) replaced the single view mode in previous
releases.  The size/position update logic was not modified
to take into consideration the possibility that a user might
move/resize the window and then quickly toggle modes before
the new location or size were recorded to the registry.

This change ensures that when a mode change occurs, via a
call to khm_set_main_window_mode(), that the current
location/size will be written to the registry and any
outstanding timer, MW_RESIZE_TIMER, will be cleared.

The logic to save the location/size has been extracted
into the new static function main_wnd_save_sizepos().

main_wnd_save_sizepos() is only called after the application
window has been created.

ticket: 5613

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19760 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoIn krb5_preauth_context ftable should be
Jeffrey Altman [Wed, 8 Aug 2007 05:04:45 +0000 (05:04 +0000)]
In krb5_preauth_context ftable should be
struct krb5plugin_preauth_client_ftable_v1 *
instead of
struct krb5plugin_preauth_client_ftable_v0 *

ticket: 5617

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19759 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoOnly build pkinit plugin if a sufficiently recent version of OpenSSL is available
Ken Raeburn [Wed, 8 Aug 2007 05:00:05 +0000 (05:00 +0000)]
Only build pkinit plugin if a sufficiently recent version of OpenSSL is available

ticket: 5617

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19758 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoRelease mechtok_out in spnego_gss_init_sec_context.
Tom Yu [Tue, 7 Aug 2007 20:13:11 +0000 (20:13 +0000)]
Release mechtok_out in spnego_gss_init_sec_context.
Reported by Markus Moeller.

ticket: 5629
version_reported: 1.6.1
target_version: 1.6.3
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19757 dc483132-0cff-0310-8789-dd5450dbe970

17 years agomissing comma
Jeffrey Altman [Mon, 6 Aug 2007 15:19:50 +0000 (15:19 +0000)]
missing comma

The pkinit additions in revision 18973 left out a comma after the
last function in the list.  This caused builds that did not define
DESIGNATED_INITIALIZERS to break.

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19755 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoKRB5_CALLCONV must be specified inside parens
Jeffrey Altman [Mon, 6 Aug 2007 15:11:03 +0000 (15:11 +0000)]
KRB5_CALLCONV must be specified inside parens

When declaring a function pointer, the function type
modifiers must be inside the parentheses.

  return-type (modifers * function-name) (parameters)

ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19754 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoRemove these files that were not intended to be moved onto the trunk
Kevin Coffman [Mon, 6 Aug 2007 13:57:26 +0000 (13:57 +0000)]
Remove these files that were not intended to be moved onto the trunk

ticket: 5617

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19753 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoAdd missing @end quotation
Ken Raeburn [Sat, 4 Aug 2007 08:37:13 +0000 (08:37 +0000)]
Add missing @end quotation

ticket: 5617

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19752 dc483132-0cff-0310-8789-dd5450dbe970

17 years agokrb5_fcc_generate_new() doesn't work with mkstemp()
Tom Yu [Sat, 4 Aug 2007 00:02:42 +0000 (00:02 +0000)]
krb5_fcc_generate_new() doesn't work with mkstemp()

If mkstemp() is available, the new ccache file gets created but the
subsequent open(O_CREAT|O_EXCL) call fails because the file was
already created by mkstemp().  Apply patch from Apple to keep the file
descriptor open.

ticket: new
tags: pullup
target_version: 1.6.3
component: krb5-libs

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19749 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoBased on Apple's patch, during the referrals loop, check to see if the
Tom Yu [Fri, 3 Aug 2007 21:16:19 +0000 (21:16 +0000)]
Based on Apple's patch, during the referrals loop, check to see if the
session key enctype of a returned credential for the final service is
among the enctypes explicitly selected by the application, and retry
with old_use_conf_ktypes if it is not.

ticket: 4950
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19748 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoNIM: apply does not update saved values of general identities cfg page
Jeffrey Altman [Fri, 3 Aug 2007 13:22:23 +0000 (13:22 +0000)]
NIM: apply does not update saved values of general identities cfg page

The general identities configuration panel failed to update the saved values
of the DefaultMonitor, DefaultAllowAutoRenew, and DefaultSticky options after
the "Apply" button was pressed.  This resulted in the subsequent value changed
states being incorrect.

This patch saves the values.

ticket: new
component: windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19747 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoAdd internal prototype for krb5_preauth_supply_preauth_data(). Clean up
Ezra Peisach [Fri, 3 Aug 2007 02:36:26 +0000 (02:36 +0000)]
Add internal prototype for krb5_preauth_supply_preauth_data(). Clean up
some shadow variable warnings, make depend...

ticket: 5617

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19746 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoAdd PKINIT support
Kevin Coffman [Wed, 1 Aug 2007 22:09:13 +0000 (22:09 +0000)]
Add PKINIT support

Pull up PKINIT support onto the trunk.

Changes from the version in branch users/coffman/pkinit are:

- Update the preauth plugin interface version to avoid
  conflict with any existing plugins.
- Add a pkcs11.h locally to the pkinit code rather than
  depending on opensc being installed.

ticket: new
Target_Version: 1.6.3

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19745 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoDefine snprintf along with vsnprintf for Windows
Ken Raeburn [Wed, 1 Aug 2007 00:01:31 +0000 (00:01 +0000)]
Define snprintf along with vsnprintf for Windows

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19742 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoDon't define vsnprintf for Windows here
Ken Raeburn [Wed, 1 Aug 2007 00:00:25 +0000 (00:00 +0000)]
Don't define vsnprintf for Windows here

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19741 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoImplemented and tested cc_ccache_wait_for_change()
Alexandra Ellwood [Tue, 31 Jul 2007 20:23:02 +0000 (20:23 +0000)]
Implemented and tested cc_ccache_wait_for_change()

ticket: 4644
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19740 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoSet KTFILEP field to null any time we close the file
Ken Raeburn [Fri, 27 Jul 2007 04:39:48 +0000 (04:39 +0000)]
Set KTFILEP field to null any time we close the file

ticket: 3099
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19739 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoDebugged version of patch worked up with Luke
Ken Raeburn [Fri, 27 Jul 2007 04:39:21 +0000 (04:39 +0000)]
Debugged version of patch worked up with Luke

Adds a callback to krb5int_sendto to examine the response and indicate
whether to quit the loop or not.  For sendto_kdc, keep going if the
returned error is "service unavailable".  Updated all other callers to
pass a null function pointer, which means to always break out of the
loop on any response (the old behavior).

ticket: 3334

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19738 dc483132-0cff-0310-8789-dd5450dbe970

17 years agomake depend
Ken Raeburn [Fri, 27 Jul 2007 04:39:05 +0000 (04:39 +0000)]
make depend

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19737 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoCheck for null file handle in get_next.
Ken Raeburn [Fri, 27 Jul 2007 04:38:46 +0000 (04:38 +0000)]
Check for null file handle in get_next.
Patch from Luke Howard.

ticket: 5471

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19736 dc483132-0cff-0310-8789-dd5450dbe970

17 years agoProvide {,v}asprintf prototypes if needed
Ken Raeburn [Fri, 27 Jul 2007 04:38:32 +0000 (04:38 +0000)]
Provide {,v}asprintf prototypes if needed

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19735 dc483132-0cff-0310-8789-dd5450dbe970