Когда оптимизация вредна dl // 06.11.02 02:22
Естественным желанием разработчика является очистка после использования участков памяти, хранящих критичную информацию - пароли, счета, явки... [Не забывайте при копировании материала указывать полный адрес источника: http://www.bugtraq.ru/rsn/archive/2002/11/05.html] Естественным способом такой очистки является вызов, например, функции memset, забивающей данный участок нулями. Проблема в том, что если очищаемый буфер является локальным и более не используется, многие современные C/C++ компиляторы в процессе оптимизации просто выкинут вызов, сведя на нет все благие намерения программиста.
> Когда оптимизация вредна > MSDN / Code Secure > http://msdn.microsoft.com/library/en-us/dncode/html/secure1 > 0102002.asp > > > Естественным желанием разработчика является очистка после > использования участков памяти, хранящих критичную > информацию - пароли, счета, явки... Естественным способом > такой очистки является вызов, например, функции memset, > забивающей данный участок нулями. Проблема в том, что если > очищаемый буфер является локальным и более не используется, > многие современные C/C++ компиляторы в процессе оптимизации > просто выкинут вызов, сведя на нет все благие намерения > программиста.
Интересно сей баг есть только у MS или везде?
Когда оптимизация вредна06.11.02 22:24 Автор: dl <Dmitry Leonov>