From: Ben Kaduk Date: Fri, 6 Mar 2015 20:42:10 +0000 (-0500) Subject: Fix loop to determine MSLSA principal name X-Git-Tag: krb5-1.14-alpha1~118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7dc6c347e352324e374b3456f60e49aa4b8ba08;p=thirdparty%2Fkrb5.git Fix loop to determine MSLSA principal name When looping over principals, check the i-th entry instead of looking at the 0-th entry each time through the loop. This would only affect cases when multiple ticket entries were returned from the LSA, the first one did not have a valid principal name, but some other one did. It is expected that all of the returned ticket entries will always have a valid client principal name, so this is unlikely to cause any functional difference. ticket: 8177 (new) queue: kfw tags: pullup target_version: 1.13.3 --- diff --git a/src/lib/krb5/ccache/cc_mslsa.c b/src/lib/krb5/ccache/cc_mslsa.c index c775805420..7a80470237 100644 --- a/src/lib/krb5/ccache/cc_mslsa.c +++ b/src/lib/krb5/ccache/cc_mslsa.c @@ -1568,8 +1568,8 @@ krb5_lcc_resolve (krb5_context context, krb5_ccache *id, const char *residual) /* Take the first client principal we find; they should all be the * same anyway. */ for (i = 0; i < pResponse->CountOfTickets; i++) { - if (UnicodeStringToMITPrinc(&pResponse->Tickets[0].ClientName, - &pResponse->Tickets[0].ClientRealm, + if (UnicodeStringToMITPrinc(&pResponse->Tickets[i].ClientName, + &pResponse->Tickets[i].ClientRealm, context, &data->princ)) break; @@ -1915,8 +1915,8 @@ krb5_lcc_get_principal(krb5_context context, krb5_ccache id, krb5_principal *pri /* Take the first client principal we find; they should all be the * same anyway. */ for (i = 0; i < pResponse->CountOfTickets; i++) { - if (UnicodeStringToMITPrinc(&pResponse->Tickets[0].ClientName, - &pResponse->Tickets[0].ClientRealm, + if (UnicodeStringToMITPrinc(&pResponse->Tickets[i].ClientName, + &pResponse->Tickets[i].ClientRealm, context, &data->princ)) break; }