Beispiel #1
0
//--------------------------------------------------------------------------------------------------
rlim_t resLim_GetSandboxedAppTmpfsLimit
(
    app_Ref_t appRef                ///< [IN] The application to set resource limits for.
)
{
    // Create a config iterator to get the file system limit from the config tree.
    le_cfg_IteratorRef_t appCfg = le_cfg_CreateReadTxn(app_GetConfigPath(appRef));

    // Get the resource limit from the config tree.
    int fileSysLimit = GetCfgResourceLimit(appCfg,
                                           CFG_NODE_LIMIT_MAX_FILE_SYSTEM_BYTES,
                                           DEFAULT_LIMIT_MAX_FILE_SYSTEM_BYTES);

    if (fileSysLimit == 0)
    {
        // Zero means unlimited for tmpfs mounts and is not allowed.  Use the default limit.
        LE_ERROR("Configured resource limit %s is zero, which is invalid.  Assuming the default value %d.",
                 CFG_NODE_LIMIT_MAX_FILE_SYSTEM_BYTES,
                 DEFAULT_LIMIT_MAX_FILE_SYSTEM_BYTES);

        fileSysLimit = DEFAULT_LIMIT_MAX_FILE_SYSTEM_BYTES;
    }

    le_cfg_CancelTxn(appCfg);

    return (rlim_t)fileSysLimit;
}
Beispiel #2
0
//--------------------------------------------------------------------------------------------------
rlim_t resLim_GetSandboxedAppTmpfsLimit
(
    app_Ref_t appRef                ///< [IN] The application to set resource limits for.
)
{
    // Get the resource limit from the config tree.  Zero means unlimited for tmpfs mounts and is
    // not allowed.

    // Determine the file system limit to set.
    rlim_t fileSysLimit = DEFAULT_LIMIT_FILE_SYSTEM_SIZE;

    // Create a config iterator to get the file system limit from the config tree.
    le_cfg_IteratorRef_t appCfg = le_cfg_CreateReadTxn(app_GetConfigPath(appRef));
    le_cfg_GoToNode(appCfg, CFG_NODE_LIMIT_FILE_SYSTEM_SIZE);

    if (le_cfg_NodeExists(appCfg, "") == false)
    {
        LE_WARN("No resource limit %s.  Assuming the default value %d.",
                CFG_NODE_LIMIT_FILE_SYSTEM_SIZE,
                DEFAULT_LIMIT_FILE_SYSTEM_SIZE);
    }
    else if ( (GetCfgResourceLimit(appCfg, &fileSysLimit) != LE_OK) ||
              (fileSysLimit == 0) )
    {
        // Use the default limit.
        LE_ERROR("Configured resource limit %s is invalid.  Assuming the default value %d.",
                 CFG_NODE_LIMIT_FILE_SYSTEM_SIZE,
                 DEFAULT_LIMIT_FILE_SYSTEM_SIZE);

        fileSysLimit = DEFAULT_LIMIT_FILE_SYSTEM_SIZE;
    }

    le_cfg_CancelTxn(appCfg);

    return fileSysLimit;
}