summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorJeffrey Altman <jaltman@secure-endpoints.com>2007-02-12 14:54:28 +0000
committerJeffrey Altman <jaltman@secure-endpoints.com>2007-02-12 14:54:28 +0000
commit869a2ccbbf1601b25652fc96dff2ba94ad408712 (patch)
treeb12f284d36b3b38c20baced5a537e321fb5c439e /src/include
parent59bbb3cb71c638559c973fd0d4343a7b4bb8cc51 (diff)
downloadkrb5-869a2ccbbf1601b25652fc96dff2ba94ad408712.tar.gz
krb5-869a2ccbbf1601b25652fc96dff2ba94ad408712.tar.xz
krb5-869a2ccbbf1601b25652fc96dff2ba94ad408712.zip
hack to permit GetEnvironmentVariable usage without requiring getenv() conversion
Windows has a major flaw when it comes to the use of getenv/putenv. getenv/putenv do not modify the actual environment of the process. Instead, they modify a copy of the environment block at the time the C Runtime Library was initialized for the current module. In other words, the C Runtime Library environment block for the executable is not the same as the C Runtime Library environment block for the krb5_32.dll library, etc. This results in problems when a process wants to set the default ccache name outside the krb5_context. The krb5_context default ccname disappears when the context is destroyed. gss_acquire_cred() suffers from the creation and destruction of krb5_contexts and therefore the krb5_context default ccname cannot be used to set a default ccname. Instead, the process environment must be used. In order to modify the process environment, SetEnvironmentVariable() must be used. However, this does not result in the C Runtime Library environment blocks being updated. putenv() does not see the definition of "KRB5CCNAME". This patch modifies get_os_ccname() for Windows to check GetEnvironmentVariable() before checking the registry. This hack will work as long as there is no "KRB5CCNAME" variable in the C Runtime Library environment block. The long term solution is to replace all calls to getenv and putenv with GetEnvironmentVariable/SetEnvironmentVariable for Windows. ticket: new tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19154 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include')
0 files changed, 0 insertions, 0 deletions