]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/vfs/vfs_syscalls.c
xnu-2050.48.11.tar.gz
[apple/xnu.git] / bsd / vfs / vfs_syscalls.c
index 652a8e34ac400f7ee9eb81deaeabd7910648ec57..7e68e298263a111d3dddaae150a76812db5d1470 100644 (file)
@@ -7347,6 +7347,15 @@ exchangedata (__unused proc_t p, struct exchangedata_args *uap, __unused int32_t
                goto out;
        }
 
+       /*
+        * if the two vnodes are not files, return an error.
+        */
+       if ( (vnode_isreg(svp) == 0) || (vnode_isreg(fvp) == 0) ) {
+               error = EINVAL;
+               goto out;
+       }
+
+
 #if CONFIG_MACF
        error = mac_vnode_check_exchangedata(ctx,
            fvp, svp);
@@ -8111,9 +8120,12 @@ vn_open_with_vp(vnode_t vp, int fmode, vfs_context_t ctx)
                return error;
        }
 
-       /* call out to allow 3rd party notification of open. 
+       /* Call out to allow 3rd party notification of open. 
         * Ignore result of kauth_authorize_fileop call.
         */
+#if CONFIG_MACF
+       mac_vnode_notify_open(ctx, vp, fmode);
+#endif
        kauth_authorize_fileop(vfs_context_ucred(ctx), KAUTH_FILEOP_OPEN, 
                               (uintptr_t)vp, 0);