Lines Matching defs:args
251 const PathMountNode *sandboxNode, uint32_t operation, MountArg *args)
258 args->fsType = tmp->fsType;
259 args->options = tmp->options;
260 args->mountFlags = tmp->mountFlags;
261 args->mountSharedFlag = (sandboxNode->mountSharedFlag) ? MS_SHARED : tmp->mountSharedFlag;
295 static int32_t SandboxMountFusePath(const SandboxContext *context, const MountArg *args)
302 umount2(args->destinationPath, MNT_DETACH);
306 "open /dev/fuse failed, errno: %{public}d sandbox path %{public}s", errno, args->destinationPath);
317 args->fsType, args->mountSharedFlag == MS_SHARED ? "MS_SHARED" : "MS_SLAVE",
318 (uint32_t)args->mountFlags, options, args->originPath, args->destinationPath);
321 CreateSandboxDir(args->destinationPath, FILE_MODE);
322 MountArg mountArg = {args->originPath, args->destinationPath, args->fsType, args->mountFlags, options, MS_SHARED};
352 const MountArg *args)
357 CheckAndCreateSandboxFile(args->originPath);
365 int ret = chown(args->originPath, uid, gid);
367 APPSPAWN_LOGE("Failed to chown %{public}s errno: %{public}d", args->originPath, errno);
370 ret = chmod(args->originPath, sandboxNode->demandInfo->mode);
372 APPSPAWN_LOGE("Failed to chmod %{public}s errno: %{public}d", args->originPath, errno);
392 static int32_t SetMountArgsOption(const SandboxContext *context, uint32_t category, uint32_t operation, MountArg *args)
405 int len = sprintf_s(options, OPTIONS_MAX_LEN, "%s%s%d", args->options, SHAREFS_OPTION_USER, info->uid / UID_BASE);
410 args->options = options;
416 MountArg *args, uint32_t operation)
419 uint32_t category = GetMountArgs(context, sandboxNode, operation, args);
422 ret = SetMountArgsOption(context, category, operation, args);
429 ret = SandboxMountFusePath(context, args);
431 ret = SandboxMountPath(args);
443 MountArg args = {};
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);
454 args.destinationPath = GetSandboxRealVar(context,
457 APPSPAWN_CHECK(args.originPath != NULL && args.destinationPath != NULL,
458 return APPSPAWN_ARG_INVALID, "Invalid path %{public}s %{public}s", args.originPath, args.destinationPath);
461 CheckAndCreateSandboxFile(args.destinationPath);
463 if (access(args.destinationPath, F_OK) != 0) {
464 CreateSandboxDir(args.destinationPath, FILE_MODE);
467 CreateDemandSrc(context, sandboxNode, &args);
470 APPSPAWN_LOGV("umount2 %{public}s", args.destinationPath);
471 umount2(args.destinationPath, MNT_DETACH);
474 ret = DoSandboxMountByCategory(context, sandboxNode, &args, operation);