Details

[Home]

Issue of the Implementation # K0007

Brief

(Guest Additions) g_vbgldata.mutexHGCMHandle is never destroyed

Detailed Description

When vboxsf kernel module performs its finalization tasks, the contents of g_vbgldata structure are zeroed before RTSemFastMutexDestroy() is called for g_vbgldata.mutexHGCMHandle.

File: trunk/src/VBox/Additions/common/VBoxGuestLib/Init.cpp from SVN rev. 33540.

Consider VbglTerminate() function (Init.cpp:252). It calls vbglTerminateCommon() and then vbglR0HGCMTerminate(). g_vbgldata.mutexHGCMHandle should have been destroyed in the latter. However, vbglTerminateCommon() zeroes the contents of g_vbgldata after it does its part of cleaning up (Init.cpp:164):

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

    RT_ZERO(g_vbgldata); 

    return;
}

After that, the value of g_vbgldata.mutexHGCMHandle is lost and the structure it points to will never be released: vbglR0HGCMTerminate() will call RTSemFastMutexDestroy(0) in this case.

Component

VirtualBox 3.2.10

References

Problems found by KEDR

Accepted

VirtualBox bug tracker, ticket #7720

Status

Fixed in VirtualBox 3.2.12

[Home]