VirtualBox

Ticket #7720 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

g_vbgldata.mutexHGCMHandle is never destroyed (vboxsf.ko module) => Fixed in SVN

Reported by: spectre Owned by:
Priority: major Component: guest additions
Version: VirtualBox 3.2.10 Keywords:
Cc: Guest type: Linux
Host type: Windows

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(). It seems that the intention was to destroy g_vbgldata.mutexHGCMHandle 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.

The consequences of this problem are probably not that critical. It seems, this results only in a small memory leak (36 bytes on my machine) each time vboxsf module is unloaded, but still.

Host OS: Windows XP SP3 Pro x86
Guest OS: OpenSuSE Linux 11.3 x86

Attachments

VBox.log Download (76.0 KB) - added by spectre 3 years ago.
VirtualBox log

Change History

Changed 3 years ago by spectre

comment:1 Changed 3 years ago by frank

  • Summary changed from g_vbgldata.mutexHGCMHandle is never destroyed (vboxsf.ko module) to g_vbgldata.mutexHGCMHandle is never destroyed (vboxsf.ko module) => Fixed in SVN

Thanks for the report! The next maintenance release will contain the proper fix.

comment:2 Changed 3 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed

Fixed in VBox 3.2.12.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use