--- /tmp/peer_proxy_negotiate_auth.cc 2009-08-08 14:56:02.000000000 +0100 +++ src/peer_proxy_negotiate_auth.cc 2009-08-08 11:51:48.000000000 +0100 @@ -82,9 +82,8 @@ static struct kstruct { krb5_context context; - char* mem_cache_env; krb5_ccache cc; -} kparam = {NULL, NULL, NULL}; +} kparam = {NULL, NULL}; int krb5_create_cache(char* keytab_filename, char* principal_name); void krb5_cleanup(void); @@ -152,9 +151,6 @@ kparam.cc=NULL; krb5_free_context(kparam.context); kparam.context=NULL; - if (kparam.mem_cache_env) - xfree(kparam.mem_cache_env); - kparam.mem_cache_env=NULL; } } @@ -240,7 +236,6 @@ debugs(11, 5, HERE << "Error while initialising Kerberos library : " << error_message(code)); return(1) ; } - kparam.mem_cache_env=NULL; } #if HAVE_PROFILE_H @@ -364,10 +359,7 @@ snprintf(mem_cache,strlen("MEMORY:squid_proxy_auth_")+16,"MEMORY:squid_proxy_auth_%d",getpid()); #endif - kparam.mem_cache_env=(char *)xmalloc(strlen("KRB5CCNAME=")+strlen(mem_cache)+1); - strcpy(kparam.mem_cache_env,"KRB5CCNAME="); - strcat(kparam.mem_cache_env,mem_cache); - putenv(kparam.mem_cache_env); + setenv("KRB5CCNAME", mem_cache, 1); code = krb5_cc_resolve(kparam.context, mem_cache , &kparam.cc); if (mem_cache) xfree(mem_cache);