Reference docs don't define what happens if you call krb5_realm_compare() with malformed krb5_principal structures. Define a behavior which keeps it from crashing if applications don't check ahead of time. --- krb5-1.4.1/src/lib/krb5/krb/princ_comp.c 2002-09-02 21:13:46.000000000 -0400 +++ krb5-1.4.1/src/lib/krb5/krb/princ_comp.c 2005-06-29 13:56:55.000000000 -0400 @@ -33,6 +33,13 @@ krb5_boolean KRB5_CALLCONV krb5_realm_compare(krb5_context context, krb5_const_principal princ1, krb5_const_principal princ2) { + if ((princ1 == NULL) || (princ2 == NULL)) + return FALSE; + + if ((krb5_princ_realm(context, princ1) == NULL) || + (krb5_princ_realm(context, princ2) == NULL)) + return FALSE; + if (krb5_princ_realm(context, princ1)->length != krb5_princ_realm(context, princ2)->length || memcmp (krb5_princ_realm(context, princ1)->data, @@ -49,6 +56,9 @@ register int i; krb5_int32 nelem; + if ((princ1 == NULL) || (princ2 == NULL)) + return FALSE; + nelem = krb5_princ_size(context, princ1); if (nelem != krb5_princ_size(context, princ2)) return FALSE;