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