From: Hermès Bélusca-Maïto Date: Sat, 8 Nov 2014 16:35:05 +0000 (+0000) Subject: [KERNEL32][BEEP] X-Git-Tag: backups/tcpip_revolution@71025~48 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=1b2bbd97fa7874dbe20e16f1e5ac2eeb96e2e479 [KERNEL32][BEEP] Int32x32To64 used with unsigned input values will cause unintentional sign extension. There is a lot of code in ROS that is still not fixed!! Fixes BEEP sound. See also r64020, CORE-8502 and CORE-8505 for more details. CORE-8505 #comment CsrCaptureTimeout and BEEP code fixed. svn path=/trunk/; revision=65325 --- diff --git a/reactos/dll/ntdll/csr/capture.c b/reactos/dll/ntdll/csr/capture.c index ad266250c9b..1f1e6956e55 100644 --- a/reactos/dll/ntdll/csr/capture.c +++ b/reactos/dll/ntdll/csr/capture.c @@ -321,7 +321,7 @@ CsrCaptureTimeout(IN ULONG Milliseconds, if (Milliseconds == -1) return NULL; /* Convert to relative ticks */ - Timeout->QuadPart = Int32x32To64(Milliseconds, -10000); + Timeout->QuadPart = Milliseconds * -10000LL; return Timeout; } diff --git a/reactos/drivers/base/beep/beep.c b/reactos/drivers/base/beep/beep.c index 9ba86705527..7eb64c2390b 100644 --- a/reactos/drivers/base/beep/beep.c +++ b/reactos/drivers/base/beep/beep.c @@ -339,7 +339,7 @@ BeepStartIo(IN PDEVICE_OBJECT DeviceObject, { /* Beep successful, queue a DPC to stop it */ Status = STATUS_SUCCESS; - DueTime.QuadPart = Int32x32To64(BeepParam->Duration, -10000); + DueTime.QuadPart = BeepParam->Duration * -10000LL; InterlockedIncrement(&DeviceExtension->TimerActive); KeSetTimer(&DeviceExtension->Timer, DueTime, &DeviceObject->Dpc); }