Lines Matching refs:sandboxNode
251 const PathMountNode *sandboxNode, uint32_t operation, MountArg *args)
253 uint32_t category = sandboxNode->category;
261 args->mountSharedFlag = (sandboxNode->mountSharedFlag) ? MS_SHARED : tmp->mountSharedFlag;
266 const SandboxSection *section, const PathMountNode *sandboxNode, uint32_t operation)
268 if (sandboxNode->source == NULL || sandboxNode->target == NULL) {
275 (strstr(sandboxNode->source, "/data/app") != NULL) &&
276 (strstr(sandboxNode->source, "/base") != NULL || strstr(sandboxNode->source, "/database") != NULL) &&
277 (strstr(sandboxNode->source, PARAMETER_PACKAGE_NAME) != NULL)) {
279 sandboxNode->source, section->name);
285 if (msgDomainInfo != NULL && sandboxNode->appAplName != NULL) {
286 if (!strcmp(sandboxNode->appAplName, msgDomainInfo->apl)) {
288 sandboxNode->appAplName, msgDomainInfo->apl, section->name);
351 APPSPAWN_STATIC void CreateDemandSrc(const SandboxContext *context, const PathMountNode *sandboxNode,
354 if (!sandboxNode->createDemand) {
363 uid_t uid = sandboxNode->demandInfo->uid != INVALID_UID ? sandboxNode->demandInfo->uid : info->uid;
364 gid_t gid = sandboxNode->demandInfo->gid != INVALID_UID ? sandboxNode->demandInfo->gid : info->gid;
369 if (sandboxNode->demandInfo->mode != INVALID_UID) {
370 ret = chmod(args->originPath, sandboxNode->demandInfo->mode);
415 static int DoSandboxMountByCategory(const SandboxContext *context, const PathMountNode *sandboxNode,
419 uint32_t category = GetMountArgs(context, sandboxNode, operation, args);
437 const SandboxSection *section, const PathMountNode *sandboxNode, uint32_t operation)
439 if (CheckSandboxMountNode(context, section, sandboxNode, operation) == 0) {
444 uint32_t category = GetMountArgs(context, sandboxNode, operation, &args);
446 args.originPath = GetRealSrcPath(context, sandboxNode->source, extraData);
452 args.destinationPath = GetSandboxRealVar(context, BUFFER_FOR_TARGET, sandboxNode->target, NULL, extraData);
455 BUFFER_FOR_TARGET, sandboxNode->target, context->rootPath, extraData);
460 if (sandboxNode->sandboxNode.type == SANDBOX_TAG_MOUNT_FILE) {
467 CreateDemandSrc(context, sandboxNode, &args);
474 ret = DoSandboxMountByCategory(context, sandboxNode, &args, operation);
475 if (ret != 0 && sandboxNode->checkErrorFlag) {
484 const SandboxSection *section, const SymbolLinkNode *sandboxNode)
487 if (sandboxNode->linkName == NULL || sandboxNode->target == NULL) {
492 const char *target = GetSandboxRealVar(context, BUFFER_FOR_SOURCE, sandboxNode->target, NULL, NULL);
494 sandboxNode->linkName, context->rootPath, NULL);
503 if (sandboxNode->checkErrorFlag) {
505 errno, sandboxNode->target, sandboxNode->linkName);
509 errno, sandboxNode->target, sandboxNode->linkName);
519 SandboxMountNode *sandboxNode = (SandboxMountNode *)ListEntry(node, SandboxMountNode, node);
520 switch (sandboxNode->type) {
523 ret = DoSandboxPathNodeMount(context, section, (PathMountNode *)sandboxNode, operation);
529 ret = DoSandboxPathSymLink(context, section, (SymbolLinkNode *)sandboxNode);
713 SetMountPathOperation(&operation, section->sandboxNode.type);
772 SandboxPackageNameNode *sandboxNode =
774 if (sandboxNode != NULL) {
775 int ret = MountSandboxConfig(context, sandbox, &sandboxNode->section, MOUNT_PATH_OP_NONE);
785 SandboxFlagsNode *sandboxNode = (SandboxFlagsNode *)ListEntry(node, SandboxMountNode, node);
787 if (sandboxNode->flagIndex == 0 || !CheckSpawningMsgFlagSet(context, sandboxNode->flagIndex)) {
792 int ret = MountSandboxConfig(context, sandbox, &sandboxNode->section, MOUNT_PATH_OP_NONE);
935 static void UnmountPath(char *rootPath, uint32_t len, const SandboxMountNode *sandboxNode)
937 if (sandboxNode->type == SANDBOX_TAG_MOUNT_PATH) {
938 PathMountNode *pathNode = (PathMountNode *)sandboxNode;
961 UnmountPath(path, sizeof(path), &groupNode->depNode->sandboxNode);
987 SandboxMountNode *sandboxNode = (SandboxMountNode *)ListEntry(node, SandboxMountNode, node);
988 UnmountPath(path, sizeof(path), sandboxNode);
1136 SandboxFlagsNode *sandboxNode = (SandboxFlagsNode *)ListEntry(node, SandboxMountNode, node);
1138 if (sandboxNode->flagIndex == 0 || !CheckSpawningMsgFlagSet(context, sandboxNode->flagIndex)) {
1143 if (sandboxNode->section.nameGroups == NULL) {
1148 for (uint32_t i = 0; i < sandboxNode->section.number; i++) {
1149 if (sandboxNode->section.nameGroups[i] == NULL) {
1152 SandboxNameGroupNode *groupNode = (SandboxNameGroupNode *)sandboxNode->section.nameGroups[i];
1163 SandboxPackageNameNode *sandboxNode =
1165 if (sandboxNode == NULL || sandboxNode->section.nameGroups == NULL) {
1170 for (uint32_t i = 0; i < sandboxNode->section.number; i++) {
1171 if (sandboxNode->section.nameGroups[i] == NULL) {
1174 SandboxNameGroupNode *groupNode = (SandboxNameGroupNode *)sandboxNode->section.nameGroups[i];