Я заметил, что некоторые программы явно освобождают выделенные ячейки памяти после использования. Например, OpenSSL имеет способ очистки памяти, занятой ключом RSA:
"Освобождает структуру RSA rsa. Эта функция всегда должна использоваться для освобождения структуры RSA, поскольку она также безопасно освобождает подполя, сначала очищая память."
Где любая (C/С++) программа содержит такие чувствительные переменные, как это, должно ли вы явно обнулить память, как указано выше? (Или, нулевая память, является актом паранойи или просто защитой)?
Кроме того, когда программа заканчивается, любая выделенная память в конечном итоге выделяется другой программе. В системе Linux очищается или очищается память перед тем, как ее назначить другой программе? Или, может ли вторая программа прочитать часть старого содержимого памяти первой программы?