When malloc() Never Returns NULL -- Reliability as an Illusion

Autor: Gunnar Kudrjavets, Jeff Thomas, Aditya Kumar, Nachiappan Nagappan, Ayushi Rastogi
Přispěvatelé: Software Engineering
Jazyk: angličtina
Rok vydání: 2022
Předmět:
Zdroj: Proceedings of 2022 IEEE 33nd International Symposium on Software Reliability Engineering (ISSRE)
Popis: For decades, the guidance given to software engineers has been to check the memory allocation results. This validation step is necessary to avoid crashes. However, in user mode, in modern operating systems (OS), such as Android, FreeBSD, iOS, and macOS, the caller does not have an opportunity to handle the memory allocation failures. This behavioral trait results from the actions of a system component called an out-of-memory (OOM) killer. We identify that the only mainstream OS that, by default, lets applications detect memory allocation failures is Microsoft Windows. The false expectation that an application can handle OOM errors can negatively impact its design. The presence of error-handling code creates an illusion of reliability and is wasteful in terms of lines of code and code size. We describe the current behavior of a sample of popular OSs during low-memory conditions and provide recommendations for engineering practices going forward.
6 pages. To be published in the 33rd IEEE International Symposium on Software Reliability Engineering (ISSRE 2022), Oct 31 - Nov 3 2022, Charlotte, North Carolina, USA
Databáze: OpenAIRE