svn rev #22797: branches/krb5-1-7/src/lib/kadm5/srv/

tlyu@MIT.EDU tlyu at MIT.EDU
Mon Sep 28 16:34:53 EDT 2009


http://src.mit.edu/fisheye/changelog/krb5/?cs=22797
Commit By: tlyu
Log Message:
ticket: 6509
version_fixed: 1.7.1
status: resolved

pull up r22403 from trunk

 ------------------------------------------------------------------------
 r22403 | epeisach | 2009-06-06 09:46:06 -0400 (Sat, 06 Jun 2009) | 9 lines

 ticket: 6509
 subject: 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...


Changed Files:
U   branches/krb5-1-7/src/lib/kadm5/srv/server_acl.c
Modified: branches/krb5-1-7/src/lib/kadm5/srv/server_acl.c
===================================================================
--- branches/krb5-1-7/src/lib/kadm5/srv/server_acl.c	2009-09-28 20:27:13 UTC (rev 22796)
+++ branches/krb5-1-7/src/lib/kadm5/srv/server_acl.c	2009-09-28 20:34:52 UTC (rev 22797)
@@ -238,20 +238,24 @@
 		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);
+	    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;
 	    }
-	    else {
-		acle->ae_restriction_string = (char *) NULL;
-	    }
-	    acle->ae_restriction_bad = 0;
-	    acle->ae_restrictions = (restriction_t *) NULL;
 	}
     }
     DPRINT(DEBUG_CALLS, acl_debug_level,




More information about the cvs-krb5 mailing list