[378] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

small performance enhancement

daemon@ATHENA.MIT.EDU (Jim Miller)
Mon Oct 18 19:22:05 1993

From: jim@bilbo.suite.com (Jim Miller)
Date: Mon, 18 Oct 93 18:07:18 -0500
To: krb5-bugs@MIT.EDU
Reply-To: Jim_Miller@suite.com


For Kerberos 5, pre-beta 3...

Looking through lib/krb/parse.c I see an opportunity for a small performance  
enhancement.  Nothing major, but I thought I'd mention it.

Original krb5_parse_name:

    /*
     * If a realm was not found, then we need to find the defualt
     * realm....
     */
    if (!parsed_realm) {
	if (!default_realm &&
	    (retval = krb5_get_default_realm(&default_realm)))
		return(retval);
	krb5_princ_realm(principal)->length = realmsize =  
strlen(default_realm);
    }



New code:

    static int		default_realm_size = 0;
	.
	.
	.
    /*
     * If a realm was not found, then we need to find the default
     * realm....
     */
    if (!parsed_realm) {
	if (!default_realm) {
	    if (retval = krb5_get_default_realm(&default_realm)) {
		xfree(principal->data);
		xfree((char *)principal);
		return(retval);
	    }
	    default_realm_size = strlen(default_realm);
	}
	krb5_princ_realm(principal)->length = realmsize = default_realm_size;
    }


The new code saves you from recomputing the length of the default realm string.
Not a biggie, but still...

I also added a couple of new "xfree" calls in the unlikely case where  
krb5_parse exits because of a error in "krb5_get_default_realm".


Jim_Miller@suite.com



home help back first fref pref prev next nref lref last post