From: Ezra Peisach Date: Sat, 6 Jun 2009 13:46:06 +0000 (+0000) Subject: kadmind is parsing acls good deref NULL pointer on error X-Git-Tag: krb5-1.8-alpha1~444 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=9321b02aabf84439e1d69f387f9ddf7433892e5e;p=krb5.git kadmind is parsing acls good deref NULL pointer on error In kadm5int_acl_parse_line, if you setup an acl w/ restrictions (i.e. the four argument acl format) - but have an error parsing the first few fields, acle is NULLed out, and is then derefed. This adds a conditional and indents according to the krb5 c-style... ticket: 6509 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22403 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/lib/kadm5/srv/server_acl.c b/src/lib/kadm5/srv/server_acl.c index 76220446d..fd245babe 100644 --- a/src/lib/kadm5/srv/server_acl.c +++ b/src/lib/kadm5/srv/server_acl.c @@ -238,20 +238,24 @@ kadm5int_acl_parse_line(lp) free(acle); acle = (aent_t *) NULL; } - if ( nmatch >= 4 ) { - char *trailing; - - trailing = &acle_restrictions[strlen(acle_restrictions)-1]; - while ( isspace((int) *trailing) ) - trailing--; - trailing[1] = '\0'; - acle->ae_restriction_string = strdup(acle_restrictions); - } - else { - acle->ae_restriction_string = (char *) NULL; + + if (acle) { + if ( nmatch >= 4 ) { + char *trailing; + + trailing = &acle_restrictions[strlen(acle_restrictions)-1]; + while ( isspace((int) *trailing) ) + trailing--; + trailing[1] = '\0'; + acle->ae_restriction_string = + strdup(acle_restrictions); + } + else { + acle->ae_restriction_string = (char *) NULL; + } + acle->ae_restriction_bad = 0; + acle->ae_restrictions = (restriction_t *) NULL; } - acle->ae_restriction_bad = 0; - acle->ae_restrictions = (restriction_t *) NULL; } } DPRINT(DEBUG_CALLS, acl_debug_level,