Подробности

[В начало]

Проблема в реализации № K0007

Краткое описание

(Guest Additions) Не удаляется g_vbgldata.mutexHGCMHandle

Подробное описание

При завершении работы модуля vboxsf содержимое структуры g_vbgldata заполняется нулями до вызова RTSemFastMutexDestroy() для поля g_vbgldata.mutexHGCMHandle.

Файл: trunk/src/VBox/Additions/common/VBoxGuestLib/Init.cpp, SVN rev. 33540.

Рассмотрим функцию VbglTerminate() (Init.cpp:252). Она вызывает vbglTerminateCommon(), а затем vbglR0HGCMTerminate(). g_vbgldata.mutexHGCMHandle должен был бы уничтожаться в последней. Однако vbglTerminateCommon() заполняет нулями структуру g_vbgldata после того, как освобождает другие ресурсы(Init.cpp:164):

DECLVBGL(void) vbglTerminateCommon (void)
{
    VbglPhysHeapTerminate ();

    RT_ZERO(g_vbgldata); 

    return;
}

В результате значение g_vbgldata.mutexHGCMHandle теряется и структура, на которую это поле раньше указывало, не будет освобождена. При вызове vbglR0HGCMTerminate() будет вызов RTSemFastMutexDestroy(0) в данном случае.

Компонент

VirtualBox 3.2.10

Ссылки

Problems found by KEDR

Принято

VirtualBox bug tracker, ticket #7720

Статус

Исправлено в VirtualBox 3.2.12

[В начало]