From 2b051093e949195e2cc778512499efe408bdf32f Mon Sep 17 00:00:00 2001 From: Andrew Hyatt Date: Thu, 10 Jan 2019 10:16:05 -0500 Subject: [PATCH] libsystem_sandbox constants and NSExtensionContext (#445) --- src/external/foundation | 2 +- src/sandbox/CMakeLists.txt | 21 --------------------- src/sandbox/sandbox.c | 22 +++++++++++++++++++++- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/external/foundation b/src/external/foundation index 20767fbb9..a3b6dc05c 160000 --- a/src/external/foundation +++ b/src/external/foundation @@ -1 +1 @@ -Subproject commit 20767fbb941784710d797b2ca3a377eaff292d3f +Subproject commit a3b6dc05c05e5f45b2aec539a87f4a63ae7926d5 diff --git a/src/sandbox/CMakeLists.txt b/src/sandbox/CMakeLists.txt index 411afb608..bb04c8dde 100644 --- a/src/sandbox/CMakeLists.txt +++ b/src/sandbox/CMakeLists.txt @@ -1,26 +1,5 @@ project(libsandbox) -cmake_minimum_required(VERSION 2.4.0) - -if(COMMAND cmake_policy) - cmake_policy(SET CMP0003 NEW) -endif(COMMAND cmake_policy) - -add_definitions(-D__APPLE__ -D__MACH__) -add_definitions(-DTARGET_OS_MAC=1) -add_definitions(-D__APPLE__ -D__DYNAMIC__) -add_definitions(-D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=1080) - -include_directories(${CMAKE_SOURCE_DIR}/src/kernel/libsyscall/wrappers) -include_directories(${CMAKE_SOURCE_DIR}/src/libc/darwin) - -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc -D__DARWIN_UNIX03 -fPIC -w") -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib") - -SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/darling") -SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) -SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) - set(DYLIB_INSTALL_NAME "/usr/lib/system/libsystem_sandbox.dylib") add_darling_library(sandbox SHARED sandbox.c) target_link_libraries(sandbox PRIVATE system_c system_kernel system_dyld system_malloc) diff --git a/src/sandbox/sandbox.c b/src/sandbox/sandbox.c index 34e730c82..a005739d6 100644 --- a/src/sandbox/sandbox.c +++ b/src/sandbox/sandbox.c @@ -1,7 +1,7 @@ #include "sandbox.h" #include #include - +#include #include // DUMMY implementation @@ -23,6 +23,26 @@ const char kSBXProfileNoWriteExceptTemporary[] = "no_write_except_temporary"; const char kSBXProfilePureComputation[] = "pure_computation"; +const char APP_SANDBOX_IOKIT_CLIENT[] = "com.apple.app-sandbox.iokit-client"; +const char APP_SANDBOX_MACH[] = "com.apple.app-sandbox.mach"; +const char APP_SANDBOX_READ[] = "com.apple.app-sandbox.read"; +const char APP_SANDBOX_READ_WRITE[] = "com.apple.app-sandbox.read-write"; +const char IOS_SANDBOX_APPLICATION_GROUP[] = "com.apple.sandbox.application-group"; +const char IOS_SANDBOX_CONTAINER[] = "com.apple.sandbox.container"; + +// Assuming these are 64-bit only because at least one has a value +// that can't be stored in a 32-bit integer. +#ifdef __LP64__ + +const uint64_t SANDBOX_EXTENSION_CANONICAL = 0x0000001000000002; +const uint64_t SANDBOX_EXTENSION_DEFAULT = 0x0000000400000000; +const uint64_t SANDBOX_EXTENSION_MAGIC = 0x0000000000000001; +const uint64_t SANDBOX_EXTENSION_NO_REPORT = 0x0000000100000010; +const uint64_t SANDBOX_EXTENSION_PREFIXMATCH = 0x0000000200000004; +const uint64_t SANDBOX_EXTENSION_UNRESOLVED = 0x0000000100000001; + +#endif + void sandbox_free_error(char *errorbuf) { free(errorbuf); -- 2.51.2