యూజర్ స్పేస్లో ప్రాసెస్ మెమరీని మరింత రక్షించడానికి థియో డి రాడ్ట్ ఓపెన్బిఎస్డి కోడ్బేస్కు ప్యాచ్ల శ్రేణిని జోడించారు. డెవలపర్లకు కొత్త సిస్టమ్ కాల్ మరియు అదే పేరుతో అనుబంధిత లైబ్రరీ ఫంక్షన్ అందించబడుతుంది, ఇది మార్చుకోదగినది, ఇది మెమరీ (మెమరీ మ్యాపింగ్లు)లో ప్రతిబింబించేటప్పుడు యాక్సెస్ హక్కులను సరిచేయడానికి మిమ్మల్ని అనుమతిస్తుంది. కట్టుబడి తర్వాత, మెమరీ ప్రాంతం కోసం సెట్ చేయబడిన హక్కులు, ఉదాహరణకు, వ్రాయడం మరియు అమలు చేయడం నిషేధించడం, తదుపరి కాల్ల ద్వారా mmap(), mprotect() మరియు munmap() ఫంక్షన్ల ద్వారా మార్చబడదు, ఇది ప్రయత్నించినప్పుడు EPERM లోపం ఏర్పడుతుంది. మార్చు.
ఆబ్జెక్ట్ ఫైల్ల కోసం ప్రతిబింబించే మెమరీ హక్కులను మార్చగల సామర్థ్యాన్ని నియంత్రించడానికి, కొత్త మ్యూటబుల్ BSS విభాగం (.openbsd.mutable, Mutable Block Starting Symbol) ప్రతిపాదించబడింది మరియు కొత్త ఫ్లాగ్లు PF_MUTABLE మరియు UVM_ET_IMMUTABLE జోడించబడ్డాయి. "openbsd.mutable" విభాగాలను నిర్వచించడం కోసం లింకర్కు మద్దతు జోడించబడింది మరియు వాటిని మెమరీ పేజీ సరిహద్దుకు సమలేఖనం చేయబడిన BSSలో ప్రత్యేక ప్రాంతంలో ఉంచడం. మిమ్యుటబుల్ ఫంక్షన్ని పిలవడం ద్వారా, "openbsd.mutable" అని గుర్తించబడిన విభాగాలను మినహాయించి, అన్ని ప్రతిబింబ ప్రాంతాలను మార్చలేనిదిగా గుర్తించడం సాధ్యమవుతుంది. కొత్త ఫీచర్ OpenBSD 7.3 విడుదలలో వినియోగదారులకు అందుబాటులోకి వస్తుంది.
మూలం: opennet.ru