Planetfall कल सार्वजनिक रूप से जारी किया गया, लेकिन मैं Infidel पर हफ्तों से काम कर रहा हूं। मुझे एक भयंकर बग मिला: एक जंगली pointer जो स्मृति पर लिख रहा है। ज्यादातर इसे मामूली समझते हैं, लेकिन एक C प्रोग्रामर के रूप में, मुझे स्मृति क्षति सबसे गंभीर पाप लगती है। यह एक कंपाइलर बग भी है। Infidel ENDLESS-DESERT का उपयोग अनमैप्ड एरिया सिमुलेट करने के लिए करता है। dropped आइटम DESERT-TABLE में जाते हैं lat/long के साथ। DESERT-TO-TABLE रूटीन में एक बग है जहाँ यह SLOC तर्क को ठीक से संभालने में विफल रहता है, स्मृति क्षति का कारण बनता है। इस बग का पता लगाना कठिन है क्योंकि वस्तुओं में रेत में खो जाने की एक-तीन की संभावना होती है। मुझे Infidel release 22 serial 840522 (Macintosh अपडेट) का विश्लेषण किया; मूल रिलीज 830916 में same bug है। रूटीन DESERT-TABLE में गलत इंडेक्सिंग का उपयोग करके लिखता है, ओवरराइटिंग adjacent स्मृति। यह स्मृति सुरक्षा का उल्लंघन करता है चाहे गेमप्ले प्रभाव न्यूनतम हो। Z-मशीन कार्यान्वयन pointer arithmetic त्रुटियों के माध्यम से तालिका अपडेट लूप में दोष उजागर करता है।
स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित