]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/vfs/vfs_lookup.c
xnu-1228.12.14.tar.gz
[apple/xnu.git] / bsd / vfs / vfs_lookup.c
index bb8c5dd2bec6624db0d7cd283560a261a9f42b42..0c5299ae6c2fed84a5e05b03d37b30a562851abe 100644 (file)
@@ -935,10 +935,22 @@ nextname:
                }
                switch (cnp->cn_nameiop) {
                case DELETE:
-                       nsop = NS_DELETE;
+                       if (cnp->cn_flags & CN_ALLOWRSRCFORK) {
+                               nsop = NS_DELETE;
+                       }
+                       else {
+                               error = EPERM;
+                               goto bad;
+                       }
                        break;
                case CREATE:
-                       nsop = NS_CREATE;
+                       if (cnp->cn_flags & CN_ALLOWRSRCFORK) {
+                               nsop = NS_CREATE;
+                       }
+                       else {
+                               error = EPERM;
+                               goto bad;
+                       }
                        break;
                case LOOKUP:
                        /* Make sure our lookup of "/..namedfork/rsrc" is allowed. */