Ресурс "mm" освобождается сборщиком мусора?
Когда он умрет, да. В конце концов, ГХ запустится и освободит память, если на нее нет ссылок.
Это угроза безопасности?
Давайте будем точны в нашей терминологии. Актив представляет собой нечто ценное: личные данные, время пользователя и т. Д. злоумышленник - это тот, кто желает причинить вред активу. угроза - это способ, которым злоумышленник может нанести вред. уязвимость - это аспект сценария, который может использовать злоумышленник для устранения угрозы.
Чтобы ответить на ваш вопрос, нам нужно знать:
- Что такое актив?
- Кто нападающий?
- Какую угрозу злоумышленник представляет для актива?
- Какой уязвимостью может воспользоваться злоумышленник, чтобы устранить угрозу?
Только после того, как вы сформулируете ответы на эти вопросы, мы сможем узнать, является ли невозможность немедленного освобождения буфера памяти при исключении угрозой для безопасности.
Например, активом может быть мой телевизор, злоумышленником может быть вор, угроза - кража, а уязвимость - незапертое окно второго этажа и лестница в моем гараже. Лестница и окно являются частью уязвимости к этой угрозе. Однако ни один из них не является уязвимым для угрозы, скажем, поджога. Вы не можете определить риск конкретного аспекта ситуации, пока не узнаете, какова реальная угроза!
Я знаю, что лучше всего явно освобождать любой выделенный ресурс.
Хорошей практикой является явная очистка неуправляемых ресурсов, таких как файловые дескрипторы, которые управляются операционной системой. Обычно вы позволяете сборщику мусора очищать управляемую память.