pull up r19969 from trunk
authorTom Yu <tlyu@mit.edu>
Mon, 1 Oct 2007 23:12:45 +0000 (23:12 +0000)
committerTom Yu <tlyu@mit.edu>
Mon, 1 Oct 2007 23:12:45 +0000 (23:12 +0000)
commita09b9de39903056b423295dfa3bf4375eb83a2f3
treeabe32162e219617626a967a57d805706aed3e4b7
parent8aee58ff16551bde0dc38b7e521d134f7a5a6ba2
pull up r19969 from trunk

 r19969@cathode-dark-space:  jaltman | 2007-09-24 13:46:26 -0400
 ticket: new
 subject: MSLSA krb5_cc module fails to check success of UNICODE string conversions

 The MSLSA krb5_cc module was written with an assumption that probably does not
 hold true anymore.  It assumed that all Kerberos strings although stored in
 wide character data structures could in fact be represented in the application's
 ANSI code page and that such conversions would not fail.

 The UnicodeToANSI() function did not check the result of WideCharToMultiByte()
 for success.  If the conversion failed, this could result in the caller believing
 the contents of the output string buffer were a valid string when instead they
 were simply stack garbage.

 The UnicodeStringToMITPrinc() and KerbExternalNameToMITPrinc() functions did not
 check the return value of krb5_parse_name() for success.  If krb5_parse_name()
 was passed a pointer to garbage on the stack instead of an actual principal name,
 this could result in the caller believing the output krb5_principal * was valid
 when instead it was NULL.

 The function CacheInfoEx2ToMITCred() is dependent on the success or failure of
 UnicodeStringToMITPrinc() assumed it could not fail and did not return a
 success or failure indication to its caller.

 If Microsoft a formatted ticket contains a Unicode string that can not be
 represented in the application's ANSI code page, this could result in a NULL
 pointer dereference during a call to krb5_cc_resolve("MSLSA:") or
 krb5_cc_retrieve(), or krb5_cc_get_principal().

 With the changes in this commit, tickets containing principal names that cannot
 be represented in the application's ANSI code page will be hidden from the
 application.

ticket: 5766

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@20046 dc483132-0cff-0310-8789-dd5450dbe970
src/lib/krb5/ccache/cc_mslsa.c