socsvn commit: r224025 - soc2011/aalvarez/pbmac/sys/security/mac_bsdextended

aalvarez at FreeBSD.org aalvarez at FreeBSD.org
Thu Jul 7 23:40:13 UTC 2011


Author: aalvarez
Date: Thu Jul  7 23:40:10 2011
New Revision: 224025
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224025

Log:
  Fix match logic

Modified:
  soc2011/aalvarez/pbmac/sys/security/mac_bsdextended/mac_bsdextended.c

Modified: soc2011/aalvarez/pbmac/sys/security/mac_bsdextended/mac_bsdextended.c
==============================================================================
--- soc2011/aalvarez/pbmac/sys/security/mac_bsdextended/mac_bsdextended.c	Thu Jul  7 22:30:12 2011	(r224024)
+++ soc2011/aalvarez/pbmac/sys/security/mac_bsdextended/mac_bsdextended.c	Thu Jul  7 23:40:10 2011	(r224025)
@@ -161,8 +161,14 @@
 		ruleptr = malloc(sizeof(*ruleptr), M_MACBSDEXTENDED,
 		    M_WAITOK | M_ZERO);
 
-		fpath = malloc(sizeof(*fpath)*temprule.mbr_object.mbo_fpath_len, 
-		    M_MACBSDEXTENDED, M_WAITOK | M_ZERO);
+		/* If there's a filepath, make a copy */
+		if (temprule.mbr_object.mbo_flags & MBO_FPATH_DEFINED &&
+		    temprule.mbr_object.mbo_fpath != NULL) {
+			fpath = malloc(sizeof(*fpath)*temprule.mbr_object.mbo_fpath_len, 
+			    M_MACBSDEXTENDED, M_WAITOK | M_ZERO);
+			copyinstr(temprule.mbr_object.mbo_fpath, fpath,
+			    temprule.mbr_object.mbo_fpath_len, NULL);
+		}
 	}
 
 	mtx_lock(&ugidfw_mtx);
@@ -204,13 +210,7 @@
 			*rules[index] = temprule;
 		}
 
-		/* If there's a filepath, make a copy */
-		if (temprule.mbr_object.mbo_flags & MBO_FPATH_DEFINED &&
-		    temprule.mbr_object.mbo_fpath != NULL) {
-			copyinstr(temprule.mbr_object.mbo_fpath, fpath,
-			    temprule.mbr_object.mbo_fpath_len, NULL);
-			rules[index]->mbr_object.mbo_fpath = fpath;
-		}
+		rules[index]->mbr_object.mbo_fpath = fpath;
 	}
 out:
 	mtx_unlock(&ugidfw_mtx);
@@ -334,7 +334,7 @@
 	}
 
 	if (rule->mbr_object.mbo_flags & MBO_FPATH_DEFINED && fpath_hint != NULL) {
-		match = strcmp(fpath_hint, rule->mbr_object.mbo_fpath);
+		match = (strcmp(fpath_hint, rule->mbr_object.mbo_fpath) == 0);
 
 		if (rule->mbr_object.mbo_neg & MBO_FPATH_DEFINED)
 			match = !match;


More information about the svn-soc-all mailing list