void CheckForGuardRegion(uintptr_t addr, size_t expected_size) { #if NACL_WINDOWS CheckGuardMapping(addr, expected_size, MEM_RESERVE, 0, MEM_PRIVATE); #elif NACL_LINUX CheckMapping(addr, expected_size, PROT_NONE, MAP_PRIVATE); #elif NACL_OSX CheckMapping(addr, expected_size, VM_PROT_NONE, SM_EMPTY); #else # error "Unrecognized OS" #endif }
int FilesystemRemap::AddMapping(std::string source, std::string dest) { if (!is_relative_to_cwd(source) && !is_relative_to_cwd(dest)) { std::list<pair_strings>::const_iterator it; for (it = m_mappings.begin(); it != m_mappings.end(); it++) { if ((it->second.length() == dest.length()) && (it->second.compare(dest) == 0)) { dprintf(D_ALWAYS, "Mapping already present for %s.\n", dest.c_str()); return -1; } } if (CheckMapping(dest)) { dprintf(D_ALWAYS, "Failed to convert shared mount to private mapping"); return -1; } m_mappings.push_back( std::pair<std::string, std::string>(source, dest) ); } else { dprintf(D_ALWAYS, "Unable to add mappings for relative directories (%s, %s).\n", source.c_str(), dest.c_str()); return -1; } return 0; }