diff options
Diffstat (limited to 'src/VBox/HostDrivers/Support')
44 files changed, 72 insertions, 61 deletions
diff --git a/src/VBox/HostDrivers/Support/Makefile.kmk b/src/VBox/HostDrivers/Support/Makefile.kmk index 7333bf284..b6c9433b5 100644 --- a/src/VBox/HostDrivers/Support/Makefile.kmk +++ b/src/VBox/HostDrivers/Support/Makefile.kmk @@ -1,4 +1,4 @@ -# $Id: Makefile.kmk 15589 2008-12-16 14:24:08Z vboxsync $ +# $Id: Makefile.kmk $ ## @file # Sub-Makefile for the support library and the drivers/modules/kexts it uses. # diff --git a/src/VBox/HostDrivers/Support/SUPDrv.c b/src/VBox/HostDrivers/Support/SUPDrv.c index 4e7fbe908..32b4db14b 100644 --- a/src/VBox/HostDrivers/Support/SUPDrv.c +++ b/src/VBox/HostDrivers/Support/SUPDrv.c @@ -1,4 +1,4 @@ -/* $Revision: 15843 $ */ +/* $Revision: 41435 $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - Common code. */ diff --git a/src/VBox/HostDrivers/Support/SUPDrvIDC.h b/src/VBox/HostDrivers/Support/SUPDrvIDC.h index 785dc66ac..219c0392d 100644 --- a/src/VBox/HostDrivers/Support/SUPDrvIDC.h +++ b/src/VBox/HostDrivers/Support/SUPDrvIDC.h @@ -1,4 +1,4 @@ -/* $Id: SUPDrvIDC.h 10377 2008-07-08 16:26:13Z vboxsync $ */ +/* $Id: SUPDrvIDC.h $ */ /** @file * VirtualBox Support Driver - Inter-Driver Communciation (IDC) definitions. */ diff --git a/src/VBox/HostDrivers/Support/SUPDrvIOC.h b/src/VBox/HostDrivers/Support/SUPDrvIOC.h index d025dd6b9..7e11f8f0b 100644 --- a/src/VBox/HostDrivers/Support/SUPDrvIOC.h +++ b/src/VBox/HostDrivers/Support/SUPDrvIOC.h @@ -1,4 +1,4 @@ -/* $Revision: 15838 $ */ +/* $Revision: 41426 $ */ /** @file * VirtualBox Support Driver - IOCtl definitions. */ diff --git a/src/VBox/HostDrivers/Support/SUPDrvInternal.h b/src/VBox/HostDrivers/Support/SUPDrvInternal.h index 5ae9c8b49..10a123f1c 100644 --- a/src/VBox/HostDrivers/Support/SUPDrvInternal.h +++ b/src/VBox/HostDrivers/Support/SUPDrvInternal.h @@ -1,4 +1,4 @@ -/* $Revision: 16029 $ */ +/* $Revision: 41713 $ */ /** @file * VirtualBox Support Driver - Internal header. */ diff --git a/src/VBox/HostDrivers/Support/SUPLib.cpp b/src/VBox/HostDrivers/Support/SUPLib.cpp index ed3db1125..f8258caf1 100644 --- a/src/VBox/HostDrivers/Support/SUPLib.cpp +++ b/src/VBox/HostDrivers/Support/SUPLib.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPLib.cpp 15841 2009-01-07 16:40:02Z vboxsync $ */ +/* $Id: SUPLib.cpp $ */ /** @file * VirtualBox Support Library - Common code. */ diff --git a/src/VBox/HostDrivers/Support/SUPLibInternal.h b/src/VBox/HostDrivers/Support/SUPLibInternal.h index 6b026256c..da70f8237 100644 --- a/src/VBox/HostDrivers/Support/SUPLibInternal.h +++ b/src/VBox/HostDrivers/Support/SUPLibInternal.h @@ -1,4 +1,4 @@ -/* $Id: SUPLibInternal.h 13865 2008-11-05 14:14:11Z vboxsync $ */ +/* $Id: SUPLibInternal.h $ */ /** @file * VirtualBox Support Library - Internal header. */ diff --git a/src/VBox/HostDrivers/Support/SUPR0.def b/src/VBox/HostDrivers/Support/SUPR0.def index 659532b0d..29c32b79f 100644 --- a/src/VBox/HostDrivers/Support/SUPR0.def +++ b/src/VBox/HostDrivers/Support/SUPR0.def @@ -1,4 +1,4 @@ -; $Id: SUPR0.def 15838 2009-01-07 15:57:24Z vboxsync $ +; $Id: SUPR0.def $ ;; @file ; VirtualBox Support Driver - Built-in exports. ; diff --git a/src/VBox/HostDrivers/Support/SUPR0IdcClient.c b/src/VBox/HostDrivers/Support/SUPR0IdcClient.c index fed29823d..11f668b92 100644 --- a/src/VBox/HostDrivers/Support/SUPR0IdcClient.c +++ b/src/VBox/HostDrivers/Support/SUPR0IdcClient.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClient.c 11794 2008-08-29 09:13:37Z vboxsync $ */ +/* $Id: SUPR0IdcClient.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, Core. */ diff --git a/src/VBox/HostDrivers/Support/SUPR0IdcClientComponent.c b/src/VBox/HostDrivers/Support/SUPR0IdcClientComponent.c index 523b0c5e5..b88c2c73e 100644 --- a/src/VBox/HostDrivers/Support/SUPR0IdcClientComponent.c +++ b/src/VBox/HostDrivers/Support/SUPR0IdcClientComponent.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClientComponent.c 10258 2008-07-04 23:31:26Z vboxsync $ */ +/* $Id: SUPR0IdcClientComponent.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, Component APIs. */ diff --git a/src/VBox/HostDrivers/Support/SUPR0IdcClientInternal.h b/src/VBox/HostDrivers/Support/SUPR0IdcClientInternal.h index 22133089b..7cfe72aa5 100644 --- a/src/VBox/HostDrivers/Support/SUPR0IdcClientInternal.h +++ b/src/VBox/HostDrivers/Support/SUPR0IdcClientInternal.h @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClientInternal.h 10258 2008-07-04 23:31:26Z vboxsync $ */ +/* $Id: SUPR0IdcClientInternal.h $ */ /** @file * VirtualBox Support Driver - Internal header for the IDC client library. */ diff --git a/src/VBox/HostDrivers/Support/SUPR0IdcClientStubs.c b/src/VBox/HostDrivers/Support/SUPR0IdcClientStubs.c index 7a21a84c9..53b48f988 100644 --- a/src/VBox/HostDrivers/Support/SUPR0IdcClientStubs.c +++ b/src/VBox/HostDrivers/Support/SUPR0IdcClientStubs.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClientStubs.c 10258 2008-07-04 23:31:26Z vboxsync $ */ +/* $Id: SUPR0IdcClientStubs.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, Stubs for SUPR0 APIs. */ diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedIPRT.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedIPRT.cpp index 08fea59f5..2ea70616f 100644 --- a/src/VBox/HostDrivers/Support/SUPR3HardenedIPRT.cpp +++ b/src/VBox/HostDrivers/Support/SUPR3HardenedIPRT.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPR3HardenedIPRT.cpp 15352 2008-12-12 06:08:19Z vboxsync $ */ +/* $Id: SUPR3HardenedIPRT.cpp $ */ /** @file * VirtualBox Support Library - Hardened Support Routines using IPRT. */ diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp index 58adb1a0f..67a4eb4d1 100644 --- a/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp +++ b/src/VBox/HostDrivers/Support/SUPR3HardenedMain.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPR3HardenedMain.cpp 16067 2009-01-20 07:52:25Z vboxsync $ */ +/* $Id: SUPR3HardenedMain.cpp $ */ /** @file * VirtualBox Support Library - Hardened main(). */ diff --git a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp index 5a6adf439..332105abe 100644 --- a/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp +++ b/src/VBox/HostDrivers/Support/SUPR3HardenedVerify.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPR3HardenedVerify.cpp 15353 2008-12-12 06:10:39Z vboxsync $ */ +/* $Id: SUPR3HardenedVerify.cpp $ */ /** @file * VirtualBox Support Library - Verification of Hardened Installation. */ diff --git a/src/VBox/HostDrivers/Support/SUPSvc.cpp b/src/VBox/HostDrivers/Support/SUPSvc.cpp index acf7ff293..ef0bd9fc9 100644 --- a/src/VBox/HostDrivers/Support/SUPSvc.cpp +++ b/src/VBox/HostDrivers/Support/SUPSvc.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPSvc.cpp 11725 2008-08-27 22:21:47Z vboxsync $ */ +/* $Id: SUPSvc.cpp $ */ /** @file * VirtualBox Support Service - Common Code. */ diff --git a/src/VBox/HostDrivers/Support/SUPSvcGlobal.cpp b/src/VBox/HostDrivers/Support/SUPSvcGlobal.cpp index 585a29377..2fe724dd1 100644 --- a/src/VBox/HostDrivers/Support/SUPSvcGlobal.cpp +++ b/src/VBox/HostDrivers/Support/SUPSvcGlobal.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPSvcGlobal.cpp 11725 2008-08-27 22:21:47Z vboxsync $ */ +/* $Id: SUPSvcGlobal.cpp $ */ /** @file * VirtualBox Support Service - The Global Service. */ diff --git a/src/VBox/HostDrivers/Support/SUPSvcGrant.cpp b/src/VBox/HostDrivers/Support/SUPSvcGrant.cpp index ed05d64d8..320031714 100644 --- a/src/VBox/HostDrivers/Support/SUPSvcGrant.cpp +++ b/src/VBox/HostDrivers/Support/SUPSvcGrant.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPSvcGrant.cpp 11725 2008-08-27 22:21:47Z vboxsync $ */ +/* $Id: SUPSvcGrant.cpp $ */ /** @file * VirtualBox Support Service - The Grant Service. */ diff --git a/src/VBox/HostDrivers/Support/SUPSvcInternal.h b/src/VBox/HostDrivers/Support/SUPSvcInternal.h index 05c244d11..267a28220 100644 --- a/src/VBox/HostDrivers/Support/SUPSvcInternal.h +++ b/src/VBox/HostDrivers/Support/SUPSvcInternal.h @@ -1,4 +1,4 @@ -/* $Id: SUPSvcInternal.h 11725 2008-08-27 22:21:47Z vboxsync $ */ +/* $Id: SUPSvcInternal.h $ */ /** @file * VirtualBox Support Service - Internal header. */ diff --git a/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp b/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp index c47ba6863..2e4240c33 100644 --- a/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp +++ b/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp @@ -1,4 +1,4 @@ -/* $Id: $ */ +/* $Id: $ */ /** @file * * VBox host drivers - Ring-0 support drivers - Darwin host: diff --git a/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp b/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp index 215fc3129..042189fcf 100644 --- a/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp +++ b/src/VBox/HostDrivers/Support/darwin/SUPLib-darwin.cpp @@ -1,4 +1,4 @@ -/* $Id: $ */ +/* $Id: $ */ /** @file * VirtualBox Support Library - Darwin specific parts. */ diff --git a/src/VBox/HostDrivers/Support/darwin/SUPR0IdcClient-darwin.c b/src/VBox/HostDrivers/Support/darwin/SUPR0IdcClient-darwin.c index 1351f1cb2..bcb1603e6 100644 --- a/src/VBox/HostDrivers/Support/darwin/SUPR0IdcClient-darwin.c +++ b/src/VBox/HostDrivers/Support/darwin/SUPR0IdcClient-darwin.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClient-darwin.c 10262 2008-07-04 23:42:33Z vboxsync $ */ +/* $Id: SUPR0IdcClient-darwin.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, Darwin Specific Code. */ diff --git a/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c b/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c index 8201b475b..e470ddacf 100644 --- a/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c +++ b/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c @@ -1,4 +1,4 @@ -/* $Id: SUPDrv-freebsd.c 16030 2009-01-19 05:24:30Z vboxsync $ */ +/* $Id: SUPDrv-freebsd.c $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - FreeBSD specifics. */ diff --git a/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp b/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp index 6443b4619..5af8cdcb6 100644 --- a/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp +++ b/src/VBox/HostDrivers/Support/freebsd/SUPLib-freebsd.cpp @@ -1,4 +1,4 @@ -/* $Id: $ */ +/* $Id: $ */ /** @file * VirtualBox Support Library - FreeBSD specific parts. */ diff --git a/src/VBox/HostDrivers/Support/freebsd/SUPR0IdcClient-freebsd.c b/src/VBox/HostDrivers/Support/freebsd/SUPR0IdcClient-freebsd.c index f9d0000eb..307505d6b 100644 --- a/src/VBox/HostDrivers/Support/freebsd/SUPR0IdcClient-freebsd.c +++ b/src/VBox/HostDrivers/Support/freebsd/SUPR0IdcClient-freebsd.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClient-freebsd.c 10258 2008-07-04 23:31:26Z vboxsync $ */ +/* $Id: SUPR0IdcClient-freebsd.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, FreeBSD Specific Code. */ diff --git a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c index 7fa74a1b6..e06fbcb15 100644 --- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c @@ -1,4 +1,4 @@ -/* $Rev: 15999 $ */ +/* $Rev: 41679 $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - Linux specifics. */ diff --git a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.mod.c b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.mod.c index 40a54909a..1b6094265 100644 --- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.mod.c +++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.mod.c @@ -1,4 +1,4 @@ -/* $Id: SUPDrv-linux.mod.c 10662 2008-07-15 14:36:00Z vboxsync $ */ +/* $Id: SUPDrv-linux.mod.c $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - Autogenerated Linux code. * This is checked in to assist syntax checking the module. diff --git a/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp b/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp index c02beae38..88388bb63 100644 --- a/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp +++ b/src/VBox/HostDrivers/Support/linux/SUPLib-linux.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPLib-linux.cpp 13865 2008-11-05 14:14:11Z vboxsync $ */ +/* $Id: SUPLib-linux.cpp $ */ /** @file * VirtualBox Support Library - GNU/Linux specific parts. */ diff --git a/src/VBox/HostDrivers/Support/linux/SUPR0IdcClient-linux.c b/src/VBox/HostDrivers/Support/linux/SUPR0IdcClient-linux.c index 90abb0a92..d725cf5fb 100644 --- a/src/VBox/HostDrivers/Support/linux/SUPR0IdcClient-linux.c +++ b/src/VBox/HostDrivers/Support/linux/SUPR0IdcClient-linux.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClient-linux.c 10258 2008-07-04 23:31:26Z vboxsync $ */ +/* $Id: SUPR0IdcClient-linux.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, Linux Specific Code. */ diff --git a/src/VBox/HostDrivers/Support/linux/files_vboxdrv b/src/VBox/HostDrivers/Support/linux/files_vboxdrv index bca75a850..bca75a850 100644..100755 --- a/src/VBox/HostDrivers/Support/linux/files_vboxdrv +++ b/src/VBox/HostDrivers/Support/linux/files_vboxdrv diff --git a/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp b/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp index 86fdd350c..2e755ff8e 100644 --- a/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp +++ b/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPDrv-os2.cpp 13998 2008-11-10 12:08:56Z vboxsync $ */ +/* $Id: SUPDrv-os2.cpp $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - OS/2 specifics. */ diff --git a/src/VBox/HostDrivers/Support/os2/SUPDrvA-os2.asm b/src/VBox/HostDrivers/Support/os2/SUPDrvA-os2.asm index 4498a58df..5992ecd16 100644 --- a/src/VBox/HostDrivers/Support/os2/SUPDrvA-os2.asm +++ b/src/VBox/HostDrivers/Support/os2/SUPDrvA-os2.asm @@ -1,4 +1,4 @@ -; $Id: SUPDrvA-os2.asm 10729 2008-07-17 15:05:47Z vboxsync $ +; $Id: SUPDrvA-os2.asm $ ;; @file ; VBoxDrv - OS/2 assembly file, the first file in the link. ; diff --git a/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp b/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp index fee169bfc..4c2ddaa34 100644 --- a/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp +++ b/src/VBox/HostDrivers/Support/os2/SUPLib-os2.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPLib-os2.cpp 13865 2008-11-05 14:14:11Z vboxsync $ */ +/* $Id: SUPLib-os2.cpp $ */ /** @file * VirtualBox Support Library - OS/2 specific parts. */ diff --git a/src/VBox/HostDrivers/Support/os2/SUPR0IdcClient-os2.c b/src/VBox/HostDrivers/Support/os2/SUPR0IdcClient-os2.c index ef05452ec..304bff00b 100644 --- a/src/VBox/HostDrivers/Support/os2/SUPR0IdcClient-os2.c +++ b/src/VBox/HostDrivers/Support/os2/SUPR0IdcClient-os2.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClient-os2.c 10258 2008-07-04 23:31:26Z vboxsync $ */ +/* $Id: SUPR0IdcClient-os2.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, OS/2 Specific Code. */ diff --git a/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c b/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c index fc3e580fc..ff65b4220 100644 --- a/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c +++ b/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c @@ -1,4 +1,4 @@ -/* $Id: SUPDrv-solaris.c 13865 2008-11-05 14:14:11Z vboxsync $ */ +/* $Id: SUPDrv-solaris.c $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - Solaris specifics. */ @@ -694,52 +694,62 @@ static int VBoxDrvSolarisIOCtlSlow(PSUPDRVSESSION pSession, int iCmd, int Mode, { int rc; uint32_t cbBuf = 0; - SUPREQHDR Hdr; + union + { + SUPREQHDR Hdr; + uint8_t abBuf[64]; + } StackBuf; PSUPREQHDR pHdr; /* * Read the header. */ - if (RT_UNLIKELY(IOCPARM_LEN(iCmd) != sizeof(Hdr))) + if (RT_UNLIKELY(IOCPARM_LEN(iCmd) != sizeof(StackBuf.Hdr))) { - LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: iCmd=%#x len %d expected %d\n", iCmd, IOCPARM_LEN(iCmd), sizeof(Hdr))); + LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: iCmd=%#x len %d expected %d\n", iCmd, IOCPARM_LEN(iCmd), sizeof(StackBuf.Hdr))); return EINVAL; } - rc = ddi_copyin((void *)iArg, &Hdr, sizeof(Hdr), Mode); + rc = ddi_copyin((void *)iArg, &StackBuf.Hdr, sizeof(StackBuf.Hdr), Mode); if (RT_UNLIKELY(rc)) { LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: ddi_copyin(,%#lx,) failed; iCmd=%#x. rc=%d\n", iArg, iCmd, rc)); return EFAULT; } - if (RT_UNLIKELY((Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC)) + if (RT_UNLIKELY((StackBuf.Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC)) { - LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: bad header magic %#x; iCmd=%#x\n", Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK, iCmd)); + LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: bad header magic %#x; iCmd=%#x\n", StackBuf.Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK, iCmd)); return EINVAL; } - cbBuf = RT_MAX(Hdr.cbIn, Hdr.cbOut); - if (RT_UNLIKELY( Hdr.cbIn < sizeof(Hdr) - || Hdr.cbOut < sizeof(Hdr) + cbBuf = RT_MAX(StackBuf.Hdr.cbIn, StackBuf.Hdr.cbOut); + if (RT_UNLIKELY( StackBuf.Hdr.cbIn < sizeof(StackBuf.Hdr) + || StackBuf.Hdr.cbOut < sizeof(StackBuf.Hdr) || cbBuf > _1M*16)) { - LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: max(%#x,%#x); iCmd=%#x\n", Hdr.cbIn, Hdr.cbOut, iCmd)); + LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: max(%#x,%#x); iCmd=%#x\n", StackBuf.Hdr.cbIn, StackBuf.Hdr.cbOut, iCmd)); return EINVAL; } /* * Buffer the request. */ - pHdr = RTMemTmpAlloc(cbBuf); - if (RT_UNLIKELY(!pHdr)) + if (cbBuf <= sizeof(StackBuf)) + pHdr = &StackBuf.Hdr; + else { - LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: failed to allocate buffer of %d bytes for iCmd=%#x.\n", cbBuf, iCmd)); - return ENOMEM; + pHdr = RTMemTmpAlloc(cbBuf); + if (RT_UNLIKELY(!pHdr)) + { + LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: failed to allocate buffer of %d bytes for iCmd=%#x.\n", cbBuf, iCmd)); + return ENOMEM; + } } rc = ddi_copyin((void *)iArg, pHdr, cbBuf, Mode); if (RT_UNLIKELY(rc)) { - LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: copy_from_user(,%#lx, %#x) failed; iCmd=%#x. rc=%d\n", iArg, Hdr.cbIn, iCmd, rc)); - RTMemFree(pHdr); + LogRel((DEVICE_NAME ":VBoxDrvSolarisIOCtlSlow: copy_from_user(,%#lx, %#x) failed; iCmd=%#x. rc=%d\n", iArg, cbBuf, iCmd, rc)); + if (pHdr != &StackBuf.Hdr) + RTMemFree(pHdr); return EFAULT; } @@ -747,7 +757,7 @@ static int VBoxDrvSolarisIOCtlSlow(PSUPDRVSESSION pSession, int iCmd, int Mode, * Process the IOCtl. */ rc = supdrvIOCtl(iCmd, &g_DevExt, pSession, pHdr); - + /* * Copy ioctl data and output buffer back to user space. */ @@ -770,7 +780,8 @@ static int VBoxDrvSolarisIOCtlSlow(PSUPDRVSESSION pSession, int iCmd, int Mode, else rc = EINVAL; - RTMemTmpFree(pHdr); + if (pHdr != &StackBuf.Hdr) + RTMemTmpFree(pHdr); return rc; } diff --git a/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp b/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp index b4dbdd82f..8db0c8c62 100644 --- a/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp +++ b/src/VBox/HostDrivers/Support/solaris/SUPLib-solaris.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPLib-solaris.cpp 13865 2008-11-05 14:14:11Z vboxsync $ */ +/* $Id: SUPLib-solaris.cpp $ */ /** @file * VirtualBox Support Library - Solaris specific parts. */ diff --git a/src/VBox/HostDrivers/Support/solaris/SUPR0IdcClient-solaris.c b/src/VBox/HostDrivers/Support/solaris/SUPR0IdcClient-solaris.c index f6dd151e0..c0fd3496d 100644 --- a/src/VBox/HostDrivers/Support/solaris/SUPR0IdcClient-solaris.c +++ b/src/VBox/HostDrivers/Support/solaris/SUPR0IdcClient-solaris.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClient-solaris.c 10258 2008-07-04 23:31:26Z vboxsync $ */ +/* $Id: SUPR0IdcClient-solaris.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, Solaris Specific Code. */ diff --git a/src/VBox/HostDrivers/Support/testcase/Makefile.kmk b/src/VBox/HostDrivers/Support/testcase/Makefile.kmk index c755f723c..721669201 100644 --- a/src/VBox/HostDrivers/Support/testcase/Makefile.kmk +++ b/src/VBox/HostDrivers/Support/testcase/Makefile.kmk @@ -1,4 +1,4 @@ -# $Id: Makefile.kmk 14515 2008-11-24 12:33:00Z vboxsync $ +# $Id: Makefile.kmk $ ## @file # Sub-Makefile for the SUPLib testcases. # diff --git a/src/VBox/HostDrivers/Support/testcase/tstContiguous.cpp b/src/VBox/HostDrivers/Support/testcase/tstContiguous.cpp index e0bf7de3a..681cf4031 100644 --- a/src/VBox/HostDrivers/Support/testcase/tstContiguous.cpp +++ b/src/VBox/HostDrivers/Support/testcase/tstContiguous.cpp @@ -1,4 +1,4 @@ -/* $Id: tstContiguous.cpp 13837 2008-11-05 02:54:02Z vboxsync $ */ +/* $Id: tstContiguous.cpp $ */ /** @file * VBox Support Driver - Contiguous Memory Testcase (ring-3). */ diff --git a/src/VBox/HostDrivers/Support/testcase/tstInt.cpp b/src/VBox/HostDrivers/Support/testcase/tstInt.cpp index e519b1372..64c26fa00 100644 --- a/src/VBox/HostDrivers/Support/testcase/tstInt.cpp +++ b/src/VBox/HostDrivers/Support/testcase/tstInt.cpp @@ -1,4 +1,4 @@ -/** $Id: tstInt.cpp 14831 2008-11-30 10:31:16Z vboxsync $ */ +/** $Id: tstInt.cpp $ */ /** @file * Testcase: Test the interrupt gate feature of the support library. */ diff --git a/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp b/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp index 5af79d3d2..9a948215c 100644 --- a/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp +++ b/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPDrv-win.cpp 13913 2008-11-06 12:59:01Z vboxsync $ */ +/* $Id: SUPDrv-win.cpp $ */ /** @file * VBoxDrv - The VirtualBox Support Driver - Windows NT specifics. */ diff --git a/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp b/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp index 1102570a6..4913cb294 100644 --- a/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp +++ b/src/VBox/HostDrivers/Support/win/SUPLib-win.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPLib-win.cpp 13865 2008-11-05 14:14:11Z vboxsync $ */ +/* $Id: SUPLib-win.cpp $ */ /** @file * VirtualBox Support Library - Windows NT specific parts. */ diff --git a/src/VBox/HostDrivers/Support/win/SUPR0IdcClient-win.c b/src/VBox/HostDrivers/Support/win/SUPR0IdcClient-win.c index 6021ecdd6..8703a8abc 100644 --- a/src/VBox/HostDrivers/Support/win/SUPR0IdcClient-win.c +++ b/src/VBox/HostDrivers/Support/win/SUPR0IdcClient-win.c @@ -1,4 +1,4 @@ -/* $Id: SUPR0IdcClient-win.c 10263 2008-07-05 00:26:17Z vboxsync $ */ +/* $Id: SUPR0IdcClient-win.c $ */ /** @file * VirtualBox Support Driver - IDC Client Lib, Windows Specific Code. */ diff --git a/src/VBox/HostDrivers/Support/win/SUPSvc-win.cpp b/src/VBox/HostDrivers/Support/win/SUPSvc-win.cpp index fae7d49d0..d0f9a61ba 100644 --- a/src/VBox/HostDrivers/Support/win/SUPSvc-win.cpp +++ b/src/VBox/HostDrivers/Support/win/SUPSvc-win.cpp @@ -1,4 +1,4 @@ -/* $Id: SUPSvc-win.cpp 14303 2008-11-18 13:45:38Z vboxsync $ */ +/* $Id: SUPSvc-win.cpp $ */ /** @file * VirtualBox Support Service - Windows Specific Code. */ |
