diff options
author | Ezra Peisach <epeisach@mit.edu> | 2008-08-16 13:01:40 +0000 |
---|---|---|
committer | Ezra Peisach <epeisach@mit.edu> | 2008-08-16 13:01:40 +0000 |
commit | 98428ac61a8273ada2ccd6b3f997b300eb31c246 (patch) | |
tree | b035866399c3ea179c2cefec5afeb30edfb90be7 /src/lib/krb5/krb/copy_creds.c | |
parent | 809149e75030552759243f2a55471af34622418e (diff) | |
download | krb5-98428ac61a8273ada2ccd6b3f997b300eb31c246.tar.gz krb5-98428ac61a8273ada2ccd6b3f997b300eb31c246.tar.xz krb5-98428ac61a8273ada2ccd6b3f997b300eb31c246.zip |
In copying a credential - if we run out memory - the cleanup code failed to clear the second_ticket
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20666 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/copy_creds.c')
-rw-r--r-- | src/lib/krb5/krb/copy_creds.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/krb5/krb/copy_creds.c b/src/lib/krb5/krb/copy_creds.c index 417a9a449a..f011a03cec 100644 --- a/src/lib/krb5/krb/copy_creds.c +++ b/src/lib/krb5/krb/copy_creds.c @@ -84,20 +84,22 @@ krb5int_copy_creds_contents(krb5_context context, const krb5_creds *incred, krb5_xfree(scratch); retval = krb5_copy_data(context, &incred->second_ticket, &scratch); if (retval) - goto cleanticket; + goto clearticket; tempcred->second_ticket = *scratch; krb5_xfree(scratch); retval = krb5_copy_authdata(context, incred->authdata,&tempcred->authdata); if (retval) - goto clearticket; + goto clearsecondticket; return 0; + clearsecondticket: + memset(tempcred->second_ticket.data,0,tempcred->second_ticket.length); + free(tempcred->second_ticket.data); clearticket: memset(tempcred->ticket.data,0,tempcred->ticket.length); - cleanticket: free(tempcred->ticket.data); cleanaddrs: krb5_free_addresses(context, tempcred->addresses); |