+++ /dev/null
---- sysctl.c.orig 2010-06-30 01:03:07.000000000 -0700
-+++ sysctl.c 2010-07-01 23:10:13.000000000 -0700
-@@ -53,8 +53,34 @@ sysctl(name, namelen, oldp, oldlenp, new
- void *oldp, *newp;
- size_t *oldlenp, newlen;
- {
-- if (name[0] != CTL_USER)
-+ if (name[0] != CTL_USER) {
-+ if (namelen == 2 && name[0] == CTL_KERN && name[1] == KERN_EXEC) {
-+ /*
-+ * 7723306: intercept kern.exec and fake a return of
-+ * a dummy string ("/" in this case)
-+ */
-+ if (newp != NULL) {
-+ errno = EPERM;
-+ return -1;
-+ }
-+ if (oldp == NULL) {
-+ if (oldlenp != NULL) *oldlenp = 2;
-+ return 0;
-+ }
-+ if (oldlenp == NULL) {
-+ errno = EFAULT;
-+ return -1;
-+ }
-+ if (*oldlenp < 2) {
-+ errno = ENOMEM;
-+ return -1;
-+ }
-+ memmove(oldp, "/", 2);
-+ *oldlenp = 2;
-+ return 0;
-+ }
- return (__sysctl(name, namelen, oldp, oldlenp, newp, newlen));
-+ }
-
- if (newp != NULL) {
- errno = EPERM;