On Mon, 2008-09-29 at 12:38 -0400, Peter Shoults wrote:
...
> >> usr/src/lib/gss_mechs/mech_krb5/krb5/krb/chk_trans.c
> >>
> >> What is that on line 360 of your modified code?
> >>
> >
> > CTRL-l. Linefeed (I think).
> >
> Weird - should it be there?
Don't think it causes any problems. May affect how its printed. MIT has
it so I don't see a reason to differ here.
...
> >> Actually,
> >> it looks like a lot of the returns in this routine
> >> do not call krb5_free_error(context,krberror) and also
> >> krb5_xfree(clearresult.data).
> >>
> >
> > It looks mostly correct to me. I believe I see a possible mem-leak.
> > Fixed.
> >
> Good - letting MIT know about that?
Yes, I plan on giving back any useful mods to MIT.
> >
> >>
> >> --------------
> >>
> >> usr/src/lib/gss_mechs/mech_krb5/krb5/krb/copy_addrs.c
> >>
> >> Should there be a /* Solaris kerberos */ comment
> >> above line 45 and possibly a Sun Copyright?
> >>
> >
> > The only difference I see between MIT's copy_addrs.c and our
> > copy_addrs.c is on line 32 - and its just a lint comment.
> > Can you elaborate?
> >
> >
> It looked like in other files, the memcpy was the code that was solaris
> specific.
> See usr/src/lib/gss_mechs/mech_krb5/krb5/krb/auth_con.c lines 26 & 40.
> So, my question is if those are Solaris specific in auth_con.c, why not
> here.
I can add a "/* Solaris Kerberos */" comment to the lint comment but we
haven't traditionally commented lint comments with "/* Solaris Kerberos
*/" comments. Perhaps we should? MIT code has no lint comments so its
pretty clear that any lint comments are Solaris specific.
...
> Thanks
> >> Looks like kadm5_chpass_principal_util is supposed to be
> >> call to krb5_change_password.
> >>
> Our code:
>
> 349 if (strcmp(pw0.data, pw1.data) != 0) {
> 350 ret = KRB5_LIBOS_BADPWDMATCH;
> 351 sprintf(banner, "%s. Please try again.", error_message(ret));
> 352 } else if (pw0.length == 0) {
> 353 ret = KRB5_CHPW_PWDNULL;
> 354 sprintf(banner, "%s. Please try again.", error_message(ret));
> 355 } else {
> 356 int result_code;
> 357 krb5_data result_string;
> 358
> 359 result_code = kadm5_chpass_principal_util(server_handle, client,
> 360 pw0.data,
> 361 NULL /* don't need pw
> back */,
> 362 banner,
> 363 sizeof(banner));
> 364
> 365 /* the change succeeded. go on */
>
> MIT's 1.6.3 gic_pwd.c file:
>
>
>
> if (strcmp(pw0.data, pw1.data) != 0) {
> ret = KRB5_LIBOS_BADPWDMATCH;
> sprintf(banner, "%s. Please try again.", error_message(ret));
> } else if (pw0.length == 0) {
> ret = KRB5_CHPW_PWDNULL;
> sprintf(banner, "%s. Please try again.", error_message(ret));
> } else {
> int result_code;
> krb5_data code_string;
> krb5_data result_string;
>
> if ((ret = krb5_change_password(context, &chpw_creds, pw0array,
> &result_code, &code_string,
> &result_string)))
> goto cleanup;
>
> /* the change succeeded. go on */
>
>
> Seems like we did not resync right? Maybe?
Ah, good catch. Looks like it should have been synced.
Fixed.
Thanks,
-Mark